簡體   English   中英

如何在通過gmail發送的電子郵件中添加主題?

[英]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()

其他示例也可用。

或者只使用yagmail之類的軟件包 免責聲明:我是維護者。

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

使用pip install yagmail

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM