通过 Python 发送 Outlook 电子邮件?

新手上路,请多包涵

我正在使用 Outlook 2003

使用 Python 发送电子邮件(通过 Outlook 2003 )的最佳方式是什么?

原文由 user3262424 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 342
2 个回答

对于使用 outlook 的解决方案,请参阅 TheoretiCAL 的回答

否则,使用python自带的smtplib。请注意,这将要求您的电子邮件帐户允许 smtp,默认情况下不一定启用。

 SERVER = "smtp.example.com"
FROM = "yourEmail@example.com"
TO = ["listOfEmails"] # must be a list

SUBJECT = "Subject"
TEXT = "Your Text"

# Prepare actual message
message = """From: %s\r\nTo: %s\r\nSubject: %s\r\n\

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)

# Send the mail
import smtplib
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()

编辑: 此示例使用 RFC2606 中描述的保留域

SERVER = "smtp.example.com"
FROM = "johnDoe@example.com"
TO = ["JaneDoe@example.com"] # must be a list

SUBJECT = "Hello!"
TEXT = "This is a test of emailing through smtp of example.com."

# Prepare actual message
message = """From: %s\r\nTo: %s\r\nSubject: %s\r\n\

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)

# Send the mail
import smtplib
server = smtplib.SMTP(SERVER)
server.login("MrDoe", "PASSWORD")
server.sendmail(FROM, TO, message)
server.quit()

为了让它真正与 gmail 一起工作,Doe 先生需要转到 gmail 中的选项选项卡并将其设置为允许 smtp 连接。

请注意添加登录行以向远程服务器进行身份验证。原始版本不包含此内容,这是我的疏忽。

原文由 Spencer Rathbun 发布,翻译遵循 CC BY-SA 4.0 许可协议

import win32com.client as win32
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'To address'
mail.Subject = 'Message subject'
mail.Body = 'Message body'
mail.HTMLBody = '<h2>HTML Message body</h2>' #this field is optional

# To attach a file to the email (optional):
attachment  = "Path to the attachment"
mail.Attachments.Add(attachment)

mail.Send()

将使用您本地的 outlook 帐户发送。

请注意,如果您尝试执行上面未提及的操作,请查看 COM 文档属性/方法: https ://msdn.microsoft.com/en-us/vba/outlook-vba/articles/mailitem-object-outlook。在上面的代码中, mail 是一个 MailItem 对象。

原文由 TheoretiCAL 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题