Python怪发送电子邮件行为

时间:2010-12-16 10:57:07

标签: python

我有可以正确发送电子邮件的基本脚本:

#!/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")

电子邮件已发送,但发件人地址,电子邮件标题和收件人地址在收到的电子邮件中不再可见,只有正文文本。

我该如何解决这个问题?谢谢你提前。

2 个答案:

答案 0 :(得分:4)

正确缩进代码并确保像From和Subject这样的电子邮件标题位于各自的行中,至少由换行符(\ n)分隔,然后是电子邮件的正文。您的示例中应该有一致的行为。

答案 1 :(得分:0)

这就解决了:

message =“”“来自:%s \ n要:%s \ n主题:我的主题\标题\ n \ n%s”“”%(发件人,收件人,结果)。

感谢。