首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Python生成和打开Outlook电子邮件(但不发送)

如何使用Python生成和打开Outlook电子邮件(但不发送)
EN

Stack Overflow用户
提问于 2014-01-07 02:11:02
回答 4查看 48.4K关注 0票数 32

我有一个脚本,自动创建和发送电子邮件发送电子邮件使用以下简单的功能:

代码语言:javascript
复制
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.send

但是,如何在Outlook窗口中打开此电子邮件,以便可以手动编辑和发送它?

理想情况下,我喜欢这样的东西:

代码语言:javascript
复制
def __Emailer(text, subject, recipient, auto=True):
    import win32com.client as win32   

    outlook = win32.Dispatch('outlook.application')
    mail = outlook.CreateItem(0)
    mail.To = recipient
    mail.Subject = subject
    mail.HtmlBody = text
    if auto:
        mail.send
    else:
        mail.open # or whatever the correct code is
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-07 02:25:00

调用mail.Display(True)而不是mail.send

票数 30
EN

Stack Overflow用户

发布于 2017-11-18 02:58:11

tldr:使用mail.Display(False)而不是mail.Display(True)

mail.Display(False)仍将显示该窗口。如果使用mail.Display(True),则脚本将停止,直到窗口关闭。所以使用mail.Display(False),这将打开窗口,您的python脚本将继续执行下一个命令。知道您可以使用mail.save()在draft文件夹中另存为draft也很有用。

请访问https://msdn.microsoft.com/en-us/VBA/Outlook-VBA/articles/mailitem-display-method-outlook了解更多相关信息

票数 12
EN

Stack Overflow用户

发布于 2019-10-02 20:53:56

我喜欢这个解决方案:),但我想添加一些信息:

使用该解决方案,添加Html格式的邮件输入进行修改可能是最好的方法。

还要添加工作目录中的文件...

代码语言:javascript
复制
#requirements.txt add for py 3 -> pypiwin32

def Emailer(text, subject, recipient):
    import win32com.client as win32
    import os

    outlook = win32.Dispatch('outlook.application')
    mail = outlook.CreateItem(0)
    mail.To = recipient
    mail.Subject = subject
    mail.HtmlBody = text
    ###

    attachment1 = os.getcwd() +"\\file.ini"

    mail.Attachments.Add(attachment1)

    ###
    mail.Display(True)

MailSubject= "Auto test mail"
MailInput="""
#html code here
"""
MailAdress="person1@gmail.com;person2@corp1.com"

Emailer(MailInput, MailSubject, MailAdress ) #that open a new outlook mail even outlook closed.
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20956424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档