【问题标题】:How to send email using python in outlook with recipient as microsoft mail?如何在 Outlook 中使用 python 发送电子邮件,收件人为 Microsoft 邮件?
【发布时间】:2014-03-21 13:09:03
【问题描述】:

我在使用 Outlook 发送电子邮件时遇到问题。每个电子邮件地址都像'xxx@example.com',就我而言,它只是没有完整电子邮件的名称,python 不只接受名称,我无法发送电子邮件。请帮忙。

import win32com.client

olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = "test"
newMail.Body = "test"
newMail.To = "Vick Peh"

newMail.Send()

【问题讨论】:

  • 是否必须使用 Outlook 帐户发送电子邮件,还是可以使用 SMTP 服务器发送电子邮件?我告诉你这个,因为看起来你正在使用一种痛苦的方式发送电子邮件;)。
  • 是的,需要使用 Outlook,否则我会使用 smtplib :( 这是出于公司目的,因此,无论如何我都想找出我可以自动化我的代码并将文件自动发送到接收器。
  • 是的,这是一种非常痛苦的方式。仅当我有一个实际的 SMTP 帐户来发送它时。
  • 请查看此页面:mail.python.org/pipermail/python-win32/2004-August/002239.html 他们实现了一个名为 makeentry 的函数,该函数可用于解析名称并将其转换为电子邮件地址。

标签: python email outlook win32com


【解决方案1】:

如果您或 Outlook 不知道电子邮件地址,则无法发送。

如果您只有姓名,Outlook 应该能够解析位于其中一个通讯簿中的姓名 - 在发送邮件之前调用 newMail.Recipients.ResolveAll()。

【讨论】:

  • 它没有在我的通讯录中检测到我的联系人。它一直向我显示一个错误: return self._oleobj_.InvokeTypes(61557, LCID, 1, (24, 0), (),) com_error: (-2147352567, 'Exception occurred.', (4096, u'Microsoft Outlook' , u'Outlook 无法识别一个或多个名称。', None, 0, -2147467259), None)
  • 如果您在“收件人”编辑框中键入名称并按 Ctrl+K,Outlook 会解析名称吗?
  • Outlook 确实会直接检测到名称到 TO 框。我通过上面的评论解决了这个问题(:干杯~
【解决方案2】:

如果您的地址是@您的其他地址,请尝试右键单击并先保存为您的个人地址。 从那里,您将能够检索收件人的“Internet 电子邮件”。 复制并粘贴'Internet Email'和TADA~

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2019-06-17
    相关资源
    最近更新 更多