[英]How to add a subject to an email being sent with gmail?
我正在嘗試使用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
參數。 請參閱文檔以獲取有關如何調用它的說明。
在最初定義該格式的現在已過時的文檔之后,主題行以及所有其他標頭都以稱為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()
其他示例也可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.