我有可以正确发送电子邮件的基本脚本:
#!/usr/bin/python
import smtplib
sender = 'demo@mail.com'
receivers = ['demo2@mail.com']
message = """From:Email cronjob <demo@mail.com> Subject:
Anything
Some more text """
message = message + "\nso far so good"
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender, receivers,message)
print "Successfully sent email"
except SMTPException:
print "Error: unable to send email"
使用上面的代码段,电子邮件已正确发送,但是如果我将相同的脚本放在如下所示的方法中:
#!/usr/bin/python
import smtplib
def sendMail(text):
sender = 'demo@mail.com'
receivers = ['demo2@mail.com']
message = """From: Email cronjob <demo@mail.com>
Subject: Anything
Initial text """
message = message + text
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
except SMTPException:
print "Error: unable to send email"
sendMail("\nlet's try it")
电子邮件已发送,但发件人地址,电子邮件标题和收件人地址在收到的电子邮件中不再可见,只有正文文本。
我该如何解决这个问题?谢谢你提前。
答案 0 :(得分:4)
正确缩进代码并确保像From和Subject这样的电子邮件标题位于各自的行中,至少由换行符(\ n)分隔,然后是电子邮件的正文。您的示例中应该有一致的行为。
答案 1 :(得分:0)
这就解决了:
message =“”“来自:%s \ n要:%s \ n主题:我的主题\标题\ n \ n%s”“”%(发件人,收件人,结果)。
感谢。