gpt4 book ai didi

Python 通过函数向电子邮件添加附件

转载 作者:行者123 更新时间:2023-12-03 08:55:53 24 4
gpt4 key购买 nike

我正在尝试从 Python 自动发送附件和电子邮件:

def Emailer(text, subject, recipient):
import win32com.client as win32
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = recipient
mail.Subject = subject
mail.HtmlBody = text
mail.Display(True)
attachment = 'C:/Users/.../file.pdf'
mail.Attachments.Add(attachment)

Emailer('text', 'test', '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0f616e626a4f626e6663216c6062" rel="noreferrer noopener nofollow">[email protected]</a>')

但是,这不会添加附件。路径应该是正确的,因为当我在下面尝试时,它有效:

import win32com.client as win32
mail = win32.Dispatch('outlook.application').CreateItem(0)
mail.To = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a6c8c7cbc3e6cbc7cfca88c5c9cb" rel="noreferrer noopener nofollow">[email protected]</a>'
mail.Subject = 'test'
mail.HTMLBody = 'text'

attachment = 'C:/Users/.../file.pdf'
mail.Attachments.Add(attachment)
mail.Display(True)

任何人都知道我的 Emailer() 做错了什么

最佳答案

在 Emailer 中,您在添加附件之前调用 MailItem.Display(True),而在“工作”代码段中,您在添加附件之后调用。根据the official documentation Display(True) 创建一个模式窗口,它也可能是一个阻塞调用,这意味着 Emailer 将停止运行,直到您关闭窗口。

我建议将对 Display 的调用移至添加附件之后,或者尝试打开非模式窗口。

顺便说一句,根据上面链接的文档,显示已被弃用。

关于Python 通过函数向电子邮件添加附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55474080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com