【发布时间】:2016-08-12 23:47:50
【问题描述】:
我有这个使用 smtplib 模块发送电子邮件的 python 脚本。
#! /usr/bin/python
import smtplib
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from1 = "root"
to = "ankur.kulshrestha@ericsson.com"
subject = "test mail"
msg = MIMEMultipart()
msg['From'] = from1
msg['To'] = to
msg['Subject'] = subject
text = """Hi,
This is test messgae"""
html = """\
<html>
<head></head>
<body>
<p>Hi!<br>
How are you?<br>
Here is the <a href="http://www.python.org">link</a> you wanted.
</p>
</body>
</html>
"""
fi = open("dragon.jpg", 'rb')
img = MIMEImage(fi.read())
fi.close()
msg.attach(img)
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
smtp_obj = smtplib.SMTP('rinacac-test.egi.ericsson.com')
smtp_obj.sendmail(from1, to, msg.as_string())
smtp_obj.quit()
脚本正在运行,但我的 html 内容“html”和图像“dragon.jpg”显示为附件。我希望它们显示为我的邮件内容而不是附件。请帮忙
更新: 我仍然无法理解 Multipart/alternative 在这里扮演什么角色..此外,您在下面分享的较早链接中没有显示在邮件中。
msgText = MIMEText('This is the alternative plain text message.')
msgAlternative.attach(msgText)
其次,包含 html 字符串的对象“msgText”附有“msgAlnernative”
msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><img src="cid:image1"><br>Nifty!', 'html')
msgAlnernative.attach(msgText)
但是读取图像的对象“msgImage”附加了“msgRoot”。为什么会这样..
msgImage.add_header('Content-ID', '<image1>')
msgRoot.attach(msgImage)
我找不到任何关于 MIMEMultipart/related 和替代的帮助文档。请帮忙
【问题讨论】:
-
#! /usr/bin/perl 不应该是 /usr/bin/python 吗?您可以将图像解码为 base64 字符串并将其放入
标记
-
oops.. 我主要在 perl 上工作 ;).. 无论如何,我运行的脚本就像 'python script.py'.. :)
-
谢谢拉胡尔..它的工作..但我无法理解这个“相关”和“替代”论点..你能解释一下它们是如何使用的吗?
-
stackoverflow.com/questions/11995720/… 检查这个。如果您需要更多信息,请告诉我。