作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 GMAIL 发送带有主题和消息的电子邮件。我已经成功地使用 GMAIL 发送了一封电子邮件,而没有实现 subject
并且也能够收到电子邮件。但是,每当我尝试添加一个主题时,程序就无法正常工作。
import smtplib
fromx = 'email@gmail.com'
to = 'email1@gmail.com'
subject = 'subject' #Line that causes trouble
msg = 'example'
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.ehlo()
server.login('email@gmail.com', 'password')
server.sendmail(fromx, to, subject , msg) #'subject'Causes trouble
server.quit()
错误行:
server.sendmail(fromx, to, subject , msg) #'subject'Causes trouble
最佳答案
对 smtplib.SMTP.sendmail()
的调用不带 subject
参数。参见 the doc有关如何调用它的说明。
主题行以及所有其他 header 都作为消息的一部分包含在称为 RFC822 格式的格式中,在最初定义该格式的现已过时的文档之后。使您的消息符合该格式,如下所示:
import smtplib
fromx = 'xxx@gmail.com'
to = 'xxx@gmail.com'
subject = 'subject' #Line that causes trouble
msg = 'Subject:{}\n\nexample'.format(subject)
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.ehlo()
server.login('xxx@gmail.com', 'xxx')
server.sendmail(fromx, to, msg)
server.quit()
当然,使您的消息符合所有适当标准的更简单方法是使用 Python email.message
标准库,像这样:
import smtplib
from email.mime.text import MIMEText
fromx = 'xxx@gmail.com'
to = 'xxx@gmail.com'
msg = MIMEText('example')
msg['Subject'] = 'subject'
msg['From'] = fromx
msg['To'] = to
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.ehlo()
server.login('xxx@gmail.com', 'xxx')
server.sendmail(fromx, to, msg.as_string())
server.quit()
Other examples也可用。
关于python - 如何为使用 gmail 发送的电子邮件添加主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39540043/
我是一名优秀的程序员,十分优秀!