Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python win32com发送带有多个嵌入映像的电子邮件 outlook=win32com.client作为win32 mail=outlook.CreateItem(0) 对于范围内的j(列表) file=“C:desktop\\image{}.png”。格式(j) 附件=mail.Attachments.Add(文件) index=“ID{}”。格式(j) 附件.PropertyAccessor.SetProperty(“http://schemas.microsoft.com/mapi/proptag/0x3712001F“,索引) mail.HTMLBody=“image”%(j) mail.Send()_Python_Html Email - Fatal编程技术网

Python win32com发送带有多个嵌入映像的电子邮件 outlook=win32com.client作为win32 mail=outlook.CreateItem(0) 对于范围内的j(列表) file=“C:desktop\\image{}.png”。格式(j) 附件=mail.Attachments.Add(文件) index=“ID{}”。格式(j) 附件.PropertyAccessor.SetProperty(“http://schemas.microsoft.com/mapi/proptag/0x3712001F“,索引) mail.HTMLBody=“image”%(j) mail.Send()

Python win32com发送带有多个嵌入映像的电子邮件 outlook=win32com.client作为win32 mail=outlook.CreateItem(0) 对于范围内的j(列表) file=“C:desktop\\image{}.png”。格式(j) 附件=mail.Attachments.Add(文件) index=“ID{}”。格式(j) 附件.PropertyAccessor.SetProperty(“http://schemas.microsoft.com/mapi/proptag/0x3712001F“,索引) mail.HTMLBody=“image”%(j) mail.Send(),python,html-email,Python,Html Email,目的是将所有图像(0,1,2,…由“列表”定义的最大数量)嵌入电子邮件中。但现在却被困在for循环中。请问有什么方法可以达到这个目的?谢谢 在互联网上做了一些深入的研究之后,我找到了这个特殊问题的答案。解决方案是导入base64并使用它生成图像标记。我会在这里发布我的代码,这样你就可以自己尝试了 outlook = win32com.client as win32 mail = outlook.CreateItem(0) for j in range(list) file = "C:d

目的是将所有图像(0,1,2,…由“列表”定义的最大数量)嵌入电子邮件中。但现在却被困在for循环中。请问有什么方法可以达到这个目的?谢谢

在互联网上做了一些深入的研究之后,我找到了这个特殊问题的答案。解决方案是导入base64并使用它生成图像标记。我会在这里发布我的代码,这样你就可以自己尝试了

outlook = win32com.client as win32
mail = outlook.CreateItem(0)

for j in range(list)
    file = "C:desktop\\image{}.png".format(j)
    attachment = mail.Attachments.Add(file)
    index = "ID{}".format(j)
    attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", index)

mail.HTMLBody = "<html><body> image <img src = ""cid:ID%s""></body></html>" % (j)

mail.Send()
将win32com.client作为win32导入
导入base64
def发送电子邮件(主题、文本、列表路径):
outlook=win32.Dispatch('outlook.application')
myItem=outlook.CreateItem(0)
myItem.Subject=Subject
列表\u电子邮件\u img=[]
img_标签=“”
对于范围内的i(len(列表路径)):
list_email_img.append(base64.b64编码(打开(list_img_路径[i],'rb').read()).decode('utf-8')。替换('\n','')
img_tag+=''.format(列表\u电子邮件\u img[i])
myItem.HtmlBody=“”\
{}
{}

“”格式(文本,img_标记) myItem.To=”example@company.com" myItem.CC=example@example.org' myItem.Display() myItem.Send()
希望这能有所帮助

import win32com.client as win32
import base64

def send_email(subject, text, list_img_paths):

    outlook = win32.Dispatch('outlook.application')
    myItem = outlook.CreateItem(0)

    myItem.Subject = subject
    list_email_img = []
    img_tag = ''
    for i in range(len(list_img_paths)):
        list_email_img.append(base64.b64encode(open(list_img_paths[i], 'rb').read()).decode('utf-8').replace('\n',''))
        img_tag +='<img alt="" src="data:image/png;base64,{}"/>'.format(list_email_img[i])
    myItem.HtmlBody = """\
    <html>
    <head>{}</head>
    <body>
    <p>{}<br>
    </p>
    </body>
    </html>
    """.format(text, img_tag)
    myItem.To = "example@company.com"
    myItem.CC = 'example@example.org'
    myItem.Display()
    myItem.Send()