我遇到了一个奇怪的问题,我的电子邮件的最后 10-20 个字符被截断。
发送邮件的代码如下:
#Get the runtime arguments.
subject = args[0]
content = str(args[1]).replace("\\n","<br/>") #Python automatically escapes the backslash in runtime arguments, so "\n" turns into "\\n".
#Create the email message.
msg = MIMEText(content, 'html')
msg['From']=sender
msg['To']=",".join(recipients)
msg['Subject']=subject
print "Sending email with subject \""+subject+"\" to: " + ",".join(recipients)
print "Content: \n" + content;
print "\n\n"
print "msg.as_string(): \n" + msg.as_string()
#Set the SMPTP server, and send the email.
s = smtplib.SMTP(server)
s.sendmail(sender,recipients,msg.as_string())
s.quit()
正如您在代码中看到的,我将内容和最终消息都打印到屏幕上,两者都打印正确。但是当收件人收到电子邮件时,它会被截断。我不能 100% 确定它是被一定数量的字符截断,还是在一定数量的字符之后被截断,但我怀疑是后者。
奇怪的是,如果电子邮件以纯文本而不是 HTML 格式发送,它们就可以很好地发送。但不幸的是,大多数收件人都使用 Outlook,它认为它比我更清楚在纯文本电子邮件中的换行位置......
任何见解将不胜感激。
编辑:我还应该提到这不是格式良好的 HTML。基本上,我只是用
<br/>
我不确定这是否会有所作为。除了刹车标签之外,没有任何东西与 HTML 标签很相似,所以问题不在于意外的标签弄乱了格式。