python - 使用 python 通过 Outlook 将 html 文件作为电子邮件正文发送
问题描述
我正在尝试通过 Outlook 电子邮件作为正文发送散景图。你知道,散景图,我已经生成了一个 HTML 文件。我想在作为电子邮件正文嵌入的电子邮件中发送相同的内容。
我尝试使用 read 命令读取 HTML 文件并提供与 htmlbody 相同的内容。但是,它在电子邮件中是空白的。什么都没有填充。下面是我试过的代码。
import win32com.client as win32
import psutil
import os
import subprocess
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'ABC@XYZ.com'
mail.Subject = 'Sent through Python'
html_url='C:/Users/ABC/Documents/XYZ/test.htm'
with open(html_url, 'r') as myfile:
data=myfile.read()
mail.HTMLBody = data
mail.send
然后尝试了以下...但是电子邮件正文仍然是空白的..知道出了什么问题吗???
from bokeh.embed import components
from jinja2 import Template
from bokeh.resources import INLINE
from bokeh.plotting import figure
from bokeh.io import output_file,show,output_notebook
import win32com.client as win32
import psutil
import os
import subprocess
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'ABC@XYZ.com'
mail.Subject = 'Sent through Python'
def get_plot_components() :
# build your plot here
plot = figure()
plot.circle([2,3,4],[5,6,7])
show(plot)
script, div = components(plot)
return script, div
template = Template('''
<div id='bokeh_plot_for_the_body'>
{{ resources | safe }}
{{ div | safe }}
{{ script | safe }}
</div>
''')
script, div = get_plot_components()
outlook_body = template.render(resources = INLINE.render(),
script = script,
div = div)
mail.HTMLBody = outlook_body
mail.send
解决方案
看起来这无法实现,因为由于安全威胁,没有电子邮件客户端允许运行脚本。唯一的出路是附加一个 html 文件或在电子邮件中提供一个 html 链接。
推荐阅读
- python - What is the correct header/payload for this voucher site in python requests?
- asp.net - HttpPostedFileBase 在数据库中保存图像的问题
- javascript - ReactJs 换时间视频html5
- git - Git 添加与模式不匹配的文件
- jmeter - 在类 org.apache.jmeter.testelement.property.CollectionProperty 中合并在 CLI 模式下是否存在性能问题?
- r - 冲积图中组间距离不对称
- python - 基于三个现有列创建新列
- ios - firebase 期望在我的 osx 钥匙串中找到什么?
- python - Keras 自定义损失函数中的错误 - tensotflow
- angularjs - 将字体真棒图标添加到选择中的选项