기본 설치된 메일 클라이언트를 사용하여 사용자 목록에 전자 메일을 보내려면 Python 함수를 작성하려고합니다. 전자 메일 클라이언트를 열어 사용자에게 전자 메일 본문 또는 사용자 목록을 편집 할 기회를 제공하려고합니다. Python - 여러 수신자가있는 mailto를 사용하는 기본 메일 클라이언트 열기
좀 검색을했고, 여기에 따라 : 는http://www.sightspecific.com/~mosh/WWW_FAQ/multrec.html
그것은 이메일 링크에서 다수의 쉼표로 구분 된받는 사람을 넣어 RFC 사양에 대해 분명히 있습니다. 그러나 다른 모든 사람들이 그렇게하는 것처럼 보입니다. 이것에 대한 현대 입장은 정확히 무엇입니까?
어쨌든, 나는 다음과 같은 두 사이트 발견 :
- http://2ality.blogspot.com/2009/02/generate-emails-with-mailto-urls-and.html
- http://www.megasolutions.net/python/invoke-users-standard-mail-client-64348.aspx
urllib.parse (나를 위해 url.parse.quote)를 사용하여 솔루션을 제시하는 것, 그리고 webbrowser.open.
첫 번째 링크 (2ality.blogspot.com)에서 샘플 코드를 시도했는데 정상적으로 작동하고 기본 메일 클라이언트가 열렸습니다. 그러나, 내 자신의 모듈에서 코드를 사용하려고하면 일부 기본 이상한 이유로 내 기본 브라우저가 열리는 것 같습니다. 검색 주소창에 재미있는 텍스트가 없으므로 브라우저를 열면됩니다.
email_incorrect_phone_numbers() 함수는 Employee 클래스에 있으며, Employee 클래스에는 직원 속성 (sn, givenName, mail 등)이있는 Employee 객체의 사전 (employee_dict)이 들어 있습니다. 전체 코드는 여기에 실제로 (Python - Converting CSV to Objects - Code Design)
from urllib.parse import quote
import webbrowser
....
def email_incorrect_phone_numbers(self):
email_list = []
for employee in self.employee_dict.values():
if not PhoneNumberFormats.standard_format.search(employee.telephoneNumber):
print(employee.telephoneNumber, employee.sn, employee.givenName, employee.mail)
email_list.append(employee.mail)
recipients = ', '.join(email_list)
webbrowser.open("mailto:%s?subject=%s&body=%s" %
(recipients, quote("testing"), quote('testing'))
)
어떤 제안입니까?
건배, 빅터
+1, 나는 두 번째 동작입니다. –
흠, 그래, mailto 꽤 깨진 것 같습니다. 유일한 문제는 원하는 경우 사용자가 mailto 목록, 제목 및 본문을 편집 할 수있게하려는 것입니다. 미리 채워진 것들로 이메일 클라이언트를 여는 것이 좋은 방법입니다. 또한 이것은 상당히 동질적인 기업 환경이므로 사용자가 어떤 이메일 클라이언트를 사용하는지, 그리고 환경이 어떻게 설정되는지 알 수 있습니다. 그것과 그것은 정말로 한 사용자에 의해서만 실행되는 유틸리티입니다 (적어도 지금은). – victorhooi
둘째, smtplib은 엔터프라이즈 환경이므로 실제로 옵션이 아닙니다. 이 유틸리티는 사용자의 데스크톱에서 실행되는 작은 유틸리티이며 액세스 할 수있는 내부 SMTP 서버가 없기 때문에 기업 프록시/방화벽 때문에 외부 서버에 펀치 아웃 할 수 없습니다. 어느 한 쪽). SMTP 서버를 사용하지 않고도이 작업을 수행 할 수 있습니까? 마지막 옵션은 흥미로워 보이며이를 달성하는 방법을 모르겠습니다. – victorhooi