如何在使用gmail发送的电子邮件中添加主题?

2024-06-28 20:47:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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()

错误行:

^{pr2}$

Tags: to程序com主题server电子邮件email邮件
2条回答

或者只使用yagmail这样的包。免责声明:我是维护者。在

import yagmail
yag = yagmail.SMTP("email.gmail.com", "password")
yag.send("email1.gmail.com", "subject", "contents")

使用pip install yagmail安装

smtplib.SMTP.sendmail()的调用不采用subject参数。有关如何调用它的说明,请参见the doc。在

主题行以及所有其他标题都以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^{}标准库,如下所示:

^{pr2}$

Other examples也可用。在

相关问题 更多 >