我正在使用Mailjet并尝试将以编程方式生成的图像插入电子邮件正文。不幸的是,我没有看到身体中的图像,而是测试它时得到的结果:
图像未显示,下载和查看附件也不起作用
我一直在文档和{a3}中处理{a2}问题,但没有成功
我的代码如下:
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)
目前没有回答
相关问题 更多 >
编程相关推荐