我有两条消息,一条是HTML消息,另一条是一条简单的纯文本消息。我都将它们都附加到MIMEMultipart变量(tmessage),但是当电子邮件发送时,我只能看到第二条附件在我的收件箱中。我不知道为什么...这是我的代码
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
host='smtp.gmail.com'
port=587
message="<h1>Hey i have received a 3rd email message using Python</h1>"
userName='teaching807@gmail.com'
password='teaching807299'
connection = smtplib.SMTP(host,port)
connection.ehlo()
connection.starttls()
_from=userName
_to=userName
connection.login(userName,password)
tmessage = MIMEMultipart("alternative")
tmessage['Subject']="Html Message"
tmessage['From']=_from
tmessage['To']=_to
plain_message = "This is a plain message"
html_message="""<html><body><h1>Students Marks</h1><p>These are the students
Marks</p></body></html>"""
msg1=MIMEText(html_message,'html')
msg2=MIMEText(plain_message,'plain')
tmessage.attach(msg1)
tmessage.attach(msg2)
connection.sendmail(_from,_to,tmessage.as_string())
connection.quit()
在收件箱中只能看到msg2
答案 0 :(得分:0)
尝试从tmessage中删除“替代”字词,它在Outlook中对我有用。
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:selectedVariantDetail[@"fcVariantImageUrl"]]];
UIImageView *dot =[[UIImageView alloc] initWithFrame:CGRectMake(0,0,screenWidth,screenHeight)];
dot.image=[UIImage imageWithData:imageData];
dot.tag = 2;
[self.view addSubview:dot];
答案 1 :(得分:0)
通过添加两个部分,您可以提供替代方案。来自python docs:
根据RFC 2046,多部分消息的最后一部分(在这种情况下为HTML消息)是最好的并且是首选。
您要在最后添加纯文本,使其成为首选文本。您将永远不会看到纯文本和html。
答案 2 :(得分:0)
根据this文档的底部,类型“ alternative”就是那种,当出于某种原因不支持HTML时,提供备用纯文本。
您仅查看一封邮件,因为您的电子邮件帐户/浏览器支持html。 您只会看到一封电子邮件,因为只发送了一封。您查看的内容取决于您的电子邮件/浏览器可以支持的数据类型。