微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Mailjet API 和 Python 将内嵌图像插入电子邮件

如何解决使用 Mailjet API 和 Python 将内嵌图像插入电子邮件

我正在使用 Mailjet 并尝试将图像插入到以编程方式生成的电子邮件正文中。不幸的是,我没有看到正文中的图像,这是我测试时得到的结果:

enter image description here

图片不显示,下载和查看附件也不起作用。

我一直在处理文档中的 this exampletried this solution from a GitHub issue,但没有成功。

我的代码如下:

import os
from mailjet_rest import Client
import numpy as np
import plotly.graph_objects as go
import base64

MAILJET_KEY = os.environ.get("MAILJET_KEY")
MAILJET_SECRET = os.environ.get("MAILJET_SECRET")
mailjet = Client(auth=(MAILJET_KEY,MAILJET_SECRET),version='v3.1')

filename = 'sample1.png'
# Plotly code taken from: https://plotly.com/python/static-image-export/
N = 100
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
sz = np.random.rand(N) * 30

fig = go.figure()
fig.add_trace(go.Scatter(
    x=x,y=y,mode="markers",marker=go.scatter.Marker(
        size=sz,color=colors,opacity=0.6,colorscale="Viridis"
    )
))

# Save image
fig.write_image(filename)

# Base64 Encode
with open(filename,'rb') as file:
    encode64 = base64.b64encode(file.read())

cid = "id1"
data = {
    'Messages': [
        {
            "From": {
                "Email": "myemail@mydomain.com","Name": "Mailjet API Image Test"
        },"To": [{
                "Email": "myemail@gmail.com","Name": "My Name"
            }],"Subject": "Can I insert an image inline?","TextPart": "Here's a random plot for your enjoyment!","HTMLPart": ("<h3>We're putting an image inline:<br/>" +
                        f"<img src=\"cid:{cid}\">" +
                        "<br/>Other text below."),"InlinedAttachments": [{
                "ContentType": "image/png","Filename": filename,"ContentID": cid,"Base64Content": str(encode64)
            }]
        }
    ]
}
result = mailjet.send.create(data=data)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。