python 3 smtplib sendmail/send_message(mail_options=[], rcpt_options=[])

Jer*_*odG 4 python smtplib

文档指定您可以包含mail_options=[],rcpt_options=[]作为sendmail或 的参数send_message。我一直无法在任何地方找到这些选项的确切含义。我假设在那里的某个地方我可以设置 DSN。我已经构建了一个运行良好的电子邮件脚本;不需要关于如何在 Python 中使用 smtp 的帮助。

有谁知道描述这些选项以及如何使用它们的文档?

https://docs.python.org/3.5/library/smtplib.html

https://docs.python.org/3.5/library/email-examples.html#email-examples

Jer*_*odG 5

如果 SMTP 服务器正确响应“EHLO”命令,则它支持 ESMTP。

8BITMIME —8 bit data transmission, RFC 6152[1]

ATRN —Authenticated TURN for On-Demand Mail Relay, RFC 2645[2]

AUTH —Authenticated SMTP, RFC 4954[3]

CHUNKING —Chunking, RFC 3030[4]

DSN —Delivery status notification, RFC 3461[5]

ETRN —Extended version of remote message queue starting command TURN, RFC 
1985[6]
HELP —Supply helpful information, RFC 821[7]

PIPELINING —Command pipelining, RFC 2920[8]

SIZE —Message size declaration, RFC 1870[9]

STARTTLS —Transport layer security, RFC 3207 (2002)[10]
 - Not relevant in python3 as it is a separate function

SMTPUTF8 —Allow UTF-8 encoding in mailbox names and header fields, RFC 6531[11]
Run Code Online (Sandbox Code Playgroud)

DSN 用法/语法示例:

smtp.send_message(msg, rcpt_options=['NOTIFY=SUCCESS,DELAY,FAILURE'])
Run Code Online (Sandbox Code Playgroud)

笔记:

  • ESMTP 规范规定 DSN 可以以任何字符大小写组合和任何选项组合(成功、延迟或失败)来指定。
  • DSN 功能取决于从发件人到收件人的每个电子邮件服务器都支持它。

参考: