[英]E-mail sent with smtplib ends as spam
I have the following code:我有以下代码:
import smtplib, ssl
def send_email(temperature):
port = 465 # For SSL
password = "my_password"
sender_email = "my_sender@gmail.com"
receiver_email = "my_receiver@x.y"
message = """\
Subject: Temperature is %0.2f degrees C
""" % temperature
server = smtplib.SMTP_SSL("smtp.gmail.com", port)
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
if __name__ == "__main__":
send_email(7.7)
After the first run, the first message was received OK.第一次运行后,收到第一条消息就OK了。 Next messages were in a spam folder without sender address, subject and body.
下一封邮件位于垃圾邮件文件夹中,没有发件人地址、主题和正文。 I tried to mark it as not spam, but it didn't help.
我试图将其标记为非垃圾邮件,但没有帮助。 The message headers have the correct sender address, subject and body.
邮件标题具有正确的发件人地址、主题和正文。
Can I correct it somehow?我可以以某种方式纠正它吗?
I solved it as follows:我是这样解决的:
import smtplib, ssl
from email.mime.text import MIMEText
def send_email(temperature):
port = 465 # For SSL
password = "my_password"
sender_email = "my_sender_address@gmail.com"
receiver_email = "my_receiver_address.x.y"
message = MIMEText("Temperature is %0.2f degrees" % temperature)
message['Subject'] = "%0.2f degrees" % temperature
message['From'] = sender_email
message['To'] = receiver_email
server = smtplib.SMTP_SSL("smtp.gmail.com", port)
server.login(sender_email, password)
server.sendmail(sender_email, [receiver_email], message.as_string())
server.quit()
if __name__ == "__main__":
send_email(7.7)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.