当前位置: 首页 > 面试题库 >

发送包含嵌入式图像的多部分html电子邮件

蒋星雨
2023-03-14
问题内容

我一直在使用python中的email模块,但是我希望能够知道如何嵌入html中包含的图像。

举例来说,如果身体像

<img src="../path/image.png"></img>

我想将 image.png 嵌入到电子邮件中,并且该src属性应替换为content-id。有人知道怎么做这个吗?


问题答案:

这是我发现的一个例子。

食谱473810:发送带有嵌入式图像和纯文本备用内容的HTML电子邮件

对于那些希望发送带有丰富文本,布局和图形的电子邮件的人,HTML是首选方法。通常希望将图形嵌入到消息中,以便收件人可以直接显示消息,而无需进一步下载。

一些邮件代理不支持HTML,或者他们的用户更喜欢接收纯文本消息。HTML消息的发送者应包括纯文本消息,以作为这些用户的备用消息。

此配方发送带有单个嵌入图像的HTML短消息和备用纯文本消息。

# Send an HTML email with an embedded image and a plain text message for
# email clients that don't want to display the HTML.

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage

# Define these once; use them twice!
strFrom = 'from@example.com'
strTo = 'to@example.com'

# Create the root message and fill in the from, to, and subject headers
msgRoot = MIMEMultipart('related')
msgRoot['Subject'] = 'test message'
msgRoot['From'] = strFrom
msgRoot['To'] = strTo
msgRoot.preamble = 'This is a multi-part message in MIME format.'

# Encapsulate the plain and HTML versions of the message body in an
# 'alternative' part, so message agents can decide which they want to display.
msgAlternative = MIMEMultipart('alternative')
msgRoot.attach(msgAlternative)

msgText = MIMEText('This is the alternative plain text message.')
msgAlternative.attach(msgText)

# We reference the image in the IMG SRC attribute by the ID we give it below
msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><img src="cid:image1"><br>Nifty!', 'html')
msgAlternative.attach(msgText)

# This example assumes the image is in the current directory
fp = open('test.jpg', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()

# Define the image's ID as referenced above
msgImage.add_header('Content-ID', '<image1>')
msgRoot.attach(msgImage)

# Send the email (this example assumes SMTP authentication is required)
import smtplib
smtp = smtplib.SMTP()
smtp.connect('smtp.example.com')
smtp.login('exampleuser', 'examplepass')
smtp.sendmail(strFrom, strTo, msgRoot.as_string())
smtp.quit()


 类似资料:
  • 问题内容: 我正在尝试发送包含嵌入式gif图像的多部分/相关html电子邮件。该电子邮件是使用Oracle PL / SQL生成的。我的尝试失败了,图片显示为红色X(在Outlook 2007和yahoo邮件中) 我已经发送HTML电子邮件已有一段时间了,但是我现在的要求是在电子邮件中使用多个gif图像。我可以将它们存储在我们的一台Web服务器上并仅链接到它们,但是许多用户的电子邮件客户端不会自动

  • 问题内容: 我可以使用msdb.dbo.sp_send_dbmail以html格式发送电子邮件。仅在格式方面对文本非常好。例如: 但是,如果要包括从SQL服务器上的数据生成的趋势之类的图像并将其嵌入html(@emailHTML)中,应该使用哪个html标签? 如果使用[img]标记,则需要设置src属性。生成的图像保存在本地SQL Server的硬盘中。我可以将它们放在IS服务器网页区域中。但是

  • 问题内容: 我正在尝试使用图像发送带有PHPMailer的HTML邮件。正文是从包含所有信息的html文件加载的。 发送邮件时,尽管我什至也将图像作为附件发送,但图像并未出现在正文中。 HTML 标记指向与该位置相同的位置。 PHP: 如何使html指向附件,以便可以将图像加载到正文中。 查看PHPMailer附带的示例,我没有发现任何区别,在这种情况下,确实出现了图像。 问题答案: 我找到了答案

  • 我正在使用嵌入式Docusign API嵌入用于签名的文档。我将名字、姓氏和电子邮件存储在来自表单的会话中。我试图将templateRoles中的电子邮件更改为从表单存储在会话中的电子邮件,但我要么超时,要么得到一个错误,即电子邮件不正确:

  • 问题内容: 如何在多部分电子邮件中使用html标签。当我使用它时,不能将其识别为粗体标签。 问题答案: 嗯,您正在使用Java。 请注意,我认为您应该始终在HTML电子邮件中设置纯文本替代项。 此代码还允许您内嵌图像(通过HTML从引用,但并非所有电子邮件客户端都支持此功能。

  • 问题内容: 我正在尝试从PHP发送简单的HTML电子邮件。下面的代码仅导致GMail中的空白电子邮件。它还有一个名为“ noname”的空附件,这根本不是我想要的;尽管那可能只是它无法正常工作的症状。 我使用的代码是: 问题答案: 原来关键是编码类型。代替: 我需要使用: 它可能取决于您如何在自己的文本编辑器中保存PHP文件的细节。我没有研究它,但是PHP中的 iconv 函数可能也给我带来了一些

  • 问题内容: 我需要在电子邮件中嵌入图像。我该怎么做? 我既不想使用第三方工具,也不想对特定于语言的答案感兴趣(但是如果您想知道的话,它就是PHP)。 我只对生成的电子邮件正文的格式感兴趣。 问题答案: 如您所知,作为电子邮件传递的所有内容都必须文本化。 您必须创建包含多部分/ mime消息的电子邮件。 如果要添加物理图像,则该图像必须使用base 64编码并分配了Content-ID(cid)。如