18910140161

html-mailgun复杂电子邮件使用Python-Stack溢出内联发送图像

顺晟科技

2022-10-19 11:48:56

172

感谢您的帮助,我按照Mailgunn的最新文档创建了下面的函数。 https://documentation.mailgun.com/en/latest/api-sending.html#examples

但是,当运行脚本/发送电子邮件时,我仍然得到这样的错误:“UnicodeDecodeError:'CP932'编解码器不能解码位置3中的字节0xE0:非法多字节序列”。我在abit上搜索了一下,发现问题出在编码错误上。 基本上,我使用matplotlib/seaborn绘制一个图,并执行plt.savefig(“test.jpg”)。

您能帮助我处理此错误吗?

    # function to send email out
    def Heroku_Mailgun_Send_Email(self, Email_to, Email_subject, Email_body, FileAttachment, ChartImage, Email_API_key, Email_domain):
        return requests.post(
            f"https://api.mailgun.net/v3/{Email_domain}/messages",
            auth=("api", Email_API_key),
            files=[("inline", open(ChartImage)),
                ("attachment", (FileAttachment, open(FileAttachment,"rb").read()))],
            data={"from": f"NG Ying Jian <mailgun@{Email_domain}>",
                "to": Email_to,
                "subject": Email_subject,
                "text": Email_body,
                "html": f'<html>Chart image here: <img src="cid:{ChartImage}"></html>'})

######################################

Im使用python并试图构建一个函数,该函数发送一封电子邮件,其中包含一个“PNG”格式的图像文件(通过名为“chartimage”的参数传递)。 然而,当我使用下面的这个函数发送下面的图像时,图像不会被发送出去。它说“链接的图像无法显示。文件可能已被移动、重命名或删除...”

我的直觉告诉我,我需要在“files=”部分插入一些“inline”内容,以便在下面的能帮忙吗?

    # function to send email out
    def Heroku_Mailgun_Send_Email(self, Email_to, Email_subject, Email_body, FileAttachment, ChartImage, Email_API_key, Email_domain):
        return requests.post(
            f"https://api.mailgun.net/v3/{Email_domain}/messages",
            auth=("api", Email_API_key),
            files=[("inline", open(ChartImage)),
                ("attachment", (FileAttachment, open(FileAttachment,"rb").read()))],
            data={"from": f"NG Ying Jian <mailgun@{Email_domain}>",
                "to": Email_to,
                "subject": Email_subject,
                "text": Email_body,
                "html": f'<html>Chart image here: <img src="cid:{ChartImage}"></html>'})

顺晟科技:

首先,使用发送包含嵌入式图像的多部分html电子邮件中接受的答案中描述的方法创建包含嵌入式图像的消息。

然后,使用Python的库通过Mailgun的SMTP服务发送消息。您可以在中找到文档和示例。您需要详细说明Mailgun的SMTP设置,您可以在中找到这些设置.

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航