outlook☞发送带本地图片内容的邮件——by.广州业务组
回答
收藏

outlook☞发送带本地图片内容的邮件——by.广州业务组

林夕
2023-11-30 21:10·浏览量:1490
林夕
发布于 2023-11-30 20:41更新于 2023-11-30 21:101490浏览

前情提要:

现有的outlook发送邮件指令无法发送带有本地图片的邮件。

以下是提供代码方案
PS:插入图片必须用html格式编写正文

关键代码:

新建python模块代码,把以下代码追加到模块中:

import win32com.client
''''
mail_addr
    收件地址
subject
    主题
image_paths
    所有本地图片列表
html_body 
    html文本,其中图片插入位置编写格式为<img src='cid:图片序号'>,例如插入第一张图<img src='cid:1'>
'''
def send_image(mail_addr,subject,image_paths,html_body):
#    # 创建Outlook应用程序对象
    outlook = win32com.client.Dispatch("Outlook.Application")

    # 创建邮件对象
    mail = outlook.CreateItem(0)

    # 设置邮件的收件人
    mail.To=mail_addr
    # 设置邮件的主题和正文
    mail.Subject = subject
    

    # 插入本地图片到邮件内容中
    for i in range(len(image_paths)):
        image_path = image_paths[i]
        attachment = mail.Attachments.Add(image_path)
        attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", str(i+1))
    # 设置邮件的正文
    mail.HTMLBody = html_body

    # 发送邮件
    mail.Send()

简易案例:

演示案例html正文

<html>
        <body>
                <p style="font-size=20px"> 
                    <img src='cid:2' style="width: 100px; height: 70px;"> 
                    公主请打卡,王子请打卡 
                    <img src='cid:3'style="width: 100px; height: 70px;"> 
                 </p> 
                <p style="font-size=20px"> 
                    <img src='cid:1'style="width: 80px; height: 50px;">
                </p>
                <p>来自刀刀的邀请</p>
        </body>
</html>


收件效果:




有一种简易方案是:把图片转链接后插入链接到正文中,但是这样比较麻烦,图片转链接方式参考以下方案

https://www.yingdao.com/community/detaildiscuss?id=bd32a020-cdcc-4706-8ffc-4f9c44982a2e

收藏
全部回答1
最新
发布回答
回答