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

将图片嵌入电子邮件

柴瀚昂
2023-03-14
问题内容

我目前有一个程序,可以从列表中随机选择引号并通过电子邮件发送。我现在也尝试在电子邮件中嵌入图片。我遇到了一个问题,可以附加电子邮件,但报价不再起作用。我已经在网上进行了研究,但解决方案对我不起作用。请注意,我使用的是Python
3.2.2。

任何指导将不胜感激。

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage

attachment = 'bob.jpg'

msg = MIMEMultipart()
msg["To"] = to_addr
msg["From"] = from_addr
msg["Subject"] = subject_header

#msgText = MIMEText(<b>%s</b><br><img src="cid:bob.jpg"><br>, 'html') % body

fp = open(attachment, 'rb')
img = MIMEImage(fp.read())
fp.close()

msg.attach(img)

#email_message = '%s\n%s\n%s' % (subject_header, body, img)
email_message = '%s\n%s' % (subject_header, body)

emailRezi = smtplib.SMTP(mail_server, mail_server_port)
emailRezi.set_debuglevel(1)
emailRezi.login(mail_username, mail_password)
emailRezi.sendmail(from_addr, to_addr, email_message)
#emailRezi.sendmail(from_addr, to_addr, msg.as_string())
emailRezi.quit()

从上面的代码可以看出,我尝试了不同的方法(引用#)


问题答案:

您正在费力地在中构造有效的MIME消息msg,然后放弃它并发送一个简单的字符串email_message

您可能应该先了解正确的MIME结构是什么样子。多部分消息本身根本没有内容,如果需要文本部分,则必须添加文本部分。

以下是对脚本的编辑,其中添加了缺少的部分。我没有尝试发送结果消息。

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText  # Added
from email.mime.image import MIMEImage

attachment = 'bob.jpg'

msg = MIMEMultipart()
msg["To"] = to
msg["From"] = from
msg["Subject"] = subject

msgText = MIMEText('<b>%s</b><br><img src="cid:%s"><br>' % (body, attachment), 'html')  
msg.attach(msgText)   # Added, and edited the previous line

fp = open(attachment, 'rb')                                                    
img = MIMEImage(fp.read())
fp.close()
img.add_header('Content-ID', '<{}>'.format(attachment))
msg.attach(img)

print msg.as_string()
exit(0)


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

  • 我目前正在使用yagmail模块使用Python发送电子邮件,并且我很难将本地存储的图像嵌入到电子邮件中。这可能吗? 下面是一个代码示例: 使用上面的代码示例,如果我输入一个外部路径(例如,imgur图像或谷歌图像),它完美地工作,把我似乎无法得到一个本地路径识别。 解决方案不必使用yagmail,它似乎是我迄今为止使用的最简单的电子邮件模块。 谢谢你的帮助!

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

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

  • 我正在尝试在电子邮件中嵌入一个图像。我遵循了这里,这里和这里的例子和其他但我不能得到图像显示。 当我执行这个时,我得到的是一个空空如也的身体,里面有一个红十字,没有任何图像。如何使图像与电子邮件正文内联显示? 我正在使用Outlook 2016。我知道我可以在使用Outlook时插入图片,我也收到过别人在文本中插入图片的“正常”电子邮件,所以这肯定意味着我必须能够查看python脚本生成的图片?

  • 问题内容: 我正在尝试在HTML 的元素上显示png图像。该按钮与图像的大小相同,并且显示了图像,但由于某种原因不在中心,因此无法看到全部。换句话说,图像的右上角似乎位于按钮的中心而不是按钮的右上角。 这是HTML代码: 更新: 我认为实际发生的是利润问题。我得到两个像素的边距,因此背景图像从按钮中消失了。该按钮和图像的大小相同,这是唯一的,所以这是非常noticable ......我试过,但它