【发布时间】:2021-01-17 19:40:12
【问题描述】:
我正在尝试编写一个在某些情况下必须发送简单电子邮件的简单脚本。 我有以下脚本,如果我只使用这个脚本,效果很好。
import smtplib
mail_user = '123@123.com'
mail_password = 'password'
sent_from = mail_user
to = ['reciever@address.com']
subject = 'My subject'
body = 'Hello mail.'
email_text = """\
From: %s
To: %s
Subject: %s
%s
""" % (sent_from, ", ".join(to), subject, body)
try:
server = smtplib.SMTP_SSL('mail.123.com', 465)
server.ehlo()
server.login(mail_user, mail_password)
server.sendmail(sent_from, to, email_text)
server.close()
print 'Email sent!'
except:
print 'Something went wrong...'
问题是当我尝试将此代码放入 def 并从电子邮件外部调用时缺少标题,我的意思是电子邮件到达时没有发件人也没有主题。发件人为空,主题为空,但我只有正文。 当我发送到另一个域时,我也无法收到邮件,但我认为这是因为另一个域拒绝没有标头的邮件,当仅使用脚本时,邮件也会到达其他域。
import smtplib
def sendMail():
mail_user = '123@123.com'
mail_password = 'password'
sent_from = mail_user
to = ['reciever@address.com']
subject = 'My subject'
body = 'Hello mail.'
email_text = """\
From: %s
To: %s
Subject: %s
%s
""" % (sent_from, ", ".join(to), subject, body)
try:
server = smtplib.SMTP_SSL('mail.123.com', 465)
server.ehlo()
server.login(mail_user, mail_password)
server.sendmail(sent_from, to, email_text)
server.close()
print 'Email sent!'
except:
print 'Something went wrong...'
sendMail();
当我将此代码放入 def 时有什么区别?为什么会这样?我做错了什么?
感谢您的帮助。
【问题讨论】: