Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python smtplib仅发送消息正文_Python_Email_Smtp_Smtplib - Fatal编程技术网

Python smtplib仅发送消息正文

Python smtplib仅发送消息正文,python,email,smtp,smtplib,Python,Email,Smtp,Smtplib,我使用Python编写了一个简单的计时器,当计时器达到0时发送电子邮件。但是信息发送的唯一部分是身体。未发送发件人地址、收件人地址和主题。代码如下: #Coffee timer import smtplib #Set timer for 00:03:00 from time import sleep for i in range(0,180): print(180 - i), sleep(1) print("Coffee is ready") print("Sending E-mail")

我使用Python编写了一个简单的计时器,当计时器达到0时发送电子邮件。但是信息发送的唯一部分是身体。未发送发件人地址、收件人地址和主题。代码如下:

#Coffee timer
import smtplib

#Set timer for 00:03:00
from time import sleep
for i in range(0,180):
print(180 - i),
sleep(1)
print("Coffee is ready")

print("Sending E-mail")

SUBJECT = 'Coffee timer'
msg = '\nCoffee is ready'
TO = 'email-B@email.com'
FROM = 'email-A@email.com'

server = smtplib.SMTP('192.168.1.8')
server.sendmail(FROM, TO, msg, SUBJECT)
server.quit()

print("Done") 

有人能解释为什么会发生这种情况/我能做些什么来解决它吗?

在将消息传递给之前,必须将消息格式化为“RFC822”消息。(以标准的原始版本和现在已过时的版本命名。该标准的当前版本为。)

创建RFC822消息的一种简单方法是使用Python的类型继承权。在您的情况下,子类将很好地工作

试试这个:

#Coffee timer
import smtplib
from email.mime.text import MIMEText

print("Coffee is ready")

print("Sending E-mail")

SUBJECT = 'Coffee timer'
msg = 'Coffee is ready'
TO = 'email-B@email.com'
FROM = 'email-A@email.com'

msg = MIMEText(msg)
msg['Subject'] = SUBJECT
msg['To'] = TO
msg['From'] = FROM

server = smtplib.SMTP('192.168.1.8')
server.sendmail(FROM, TO, msg.as_string())
server.quit()

print("Done")
作为
.sendmail()
的一种方便的替代方法,您可以使用,如下所示:

# Exactly the same code as above, until we get to smtplib:
server = smtplib.SMTP('192.168.1.8')
server.send_message(msg)
server.quit()