Python发Email,如何使用Reply-to字段?

2019年8月4日 / 27次阅读 / Last Modified 2019年8月4日
Email

用过很多Email客户端工具,从未见过提供Reply-to字段的,基本都是收件人,CC,BCC这些。不过,如果你用代码连接SMTP服务器发送Email,可以使用Reply-to字段。这个字段的作用是:收件人点击回复的时候,在他的窗口,看到的回复地址,不再是发件人,而是Reply-to字段的值。

Reply-to字段可能不太常用吧,不过公网上主流的Email服务提供商的SMTP服务器应该都是支持的。Reply-to字段是Email的一个标准。

我们来测试一下Reply-to字段

下面的Python代码,发送一封邮件,指定了Reply-to地址:

>>> from email.header import Header
>>> from email.mime.text import MIMEText
>>> import smtplib
>>>
>>> msg_str = 'test email with reply-to addr'
>>> msg = MIMEText(msg_str, 'plain', 'utf-8')
>>> msg['From'] = 'from@qq.com'
>>> msg['To'] = 'to@qq.com'
>>> msg['Reply-to'] = 'someoneelse@outlook.com'
>>> msg['Subject'] = Header('reply-to test','utf-8').encode()
>>>
>>> smtp = smtplib.SMTP_SSL('smtp.qq.com')
>>> smtp.login('from@qq.com', 'password')
(235, b'Authentication successful')
>>> smtp.sendmail('from@qq.com', 'to@qq.com', msg.as_string())
{}
>>> smtp.quit()
(221, b'Bye')

请看高亮的第9行,用Python,就是这样在Email消息体重设置Reply-to字段。

这封邮件收到了,点击回复按钮,出来的Email编辑页面的收件人,写的不再是to@qq.com这个地址,而是someoneelse@outlook.com:

有Reply-to字段的Email
有Reply-to字段的Email

测试成功!不过,什么时候要用这个功能呢?

比如你的企业要给客户发一些Email,并且希望客户回复的时候,根据不同的Email分类,客户的回复能发到对应的处理人员的信箱;再比如服务器自动发出的各种运维信息Email,而回复地址是运维人员的信箱,自动发送Email的脚本,不应该暴露运维人员的邮箱密码。

这就是Python发Email时,Reply-to字段的使用情况。关于使用Python发送邮件的其它内容,请参考相关文章。

-- EOF --

本文链接:https://www.pynote.net/archives/759

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top