Win32 COM-在outlook中标识您自己的电子邮件地址的python代码?

Win32 COM-在outlook中标识您自己的电子邮件地址的python代码?,python,email,outlook,win32com,Python,Email,Outlook,Win32com,我创建了一个程序,当用户运行它时,它会给他/她自己发送一个附件。代码权限是当不同的用户运行它时,需要将代码更改为不同的用户(这是不高效的)。是否有python代码来识别运行程序的outlook电子邮件地址的人并将其发送给他/她本人。我正在使用win32com 而不是 mail.to "email address" 到 使用Outlook对象模型,读取Application.Session.CurrentUser.Address属性。在交换的情况下,可以从Application.Session.

我创建了一个程序,当用户运行它时,它会给他/她自己发送一个附件。代码权限是当不同的用户运行它时,需要将代码更改为不同的用户(这是不高效的)。是否有python代码来识别运行程序的outlook电子邮件地址的人并将其发送给他/她本人。我正在使用win32com

而不是

mail.to "email address"


使用Outlook对象模型,读取
Application.Session.CurrentUser.Address
属性。在交换的情况下,可以从
Application.Session.CurrentUser.AddressEntry.GetExchangeUser().PrimarySmtpAddress
中检索SMTP地址(请准备好处理空值和异常)

为了回答你的第二个问题,我会检查一下,如果你需要的只是用户名,它应该可以工作。如果有其他因素可能会改变outlook中的电子邮件地址或要求更精确一点,则需要致电ADSI,我会查看。如果您确实需要ADSI分配给MAPI的电子邮件地址-使用PS和管道输出基本上,ADSI(Active Directory服务接口)只是COM接口的一部分,其中包括用户名。MAPI(消息传递应用程序编程接口)是连接到outlook的API。PS是Powershell(基本上是Windows脚本语言)。我在MS系统上做的很多工作都是从一个PS包装器开始的,它只需要获取一组信息并将其传递给Python程序,然后由Python程序执行工作(通常是在将信息放入dict、命名tuple或将其传递给类之后)。感谢提供了丰富的信息,但什么是ADSI和MAPI,使用PS和管道输出平均值,该方法或过程如何使用?这个过程需要多长时间。我猜如果系统中有很多电子邮件,那么处理它们需要很长时间?电子邮件是不可预测的,因为对某些人来说,它可能是名字。lastname@abc.com或者其他人的姓。firstname@xyz.com或者名字的首字母。lastname@123.com等
mail.to "user of the program"