使用c#更改outlook中的发件人

本文关键字:更改 outlook 使用 | 更新日期: 2023-09-27 18:19:02

我有一个应用程序,将安装在服务器上,它连接到互联网。微软的Outlook也将被安装。系统将处理来自5个不同部门的请求,每个部门都有自己的电子邮件地址。

我已经看到了这个代码,微软Outlook发送和电子邮件自动化c#,所以我知道如何使用Outlook发送电子邮件,但我面临的问题是改变电子邮件的发件人。如何为需要从c#发送邮件的每个部门设置Outlook配置?有办法改变用户登录的方式吗?

使用c#更改outlook中的发件人

Outlook有一个属性,您可以在其中获得映射到它的帐户列表。根据您的配置,您可以接起电子邮件发件人并发送电子邮件。

 Microsoft.Office.Interop.Outlook.Accounts accounts = oMsg.Session.Accounts;                
 for (int i = 1; i <= accounts.Count; i++)
            {
                string accountfound = accounts[i].DisplayName.ToLower();
                if (accountname.ToLower() == accountfound)
                {
                    found = true;
                    oMsg.SendUsingAccount = accounts[i]; 
                    Microsoft.Office.Interop.Outlook.Recipient recipient = oMsg.Session.CreateRecipient(accountfound);
                }
            }

如果您正在使用Outlook连接到Exchange服务器,您可以使用Exchange Web Services Managed API(特别是EmailMessage类)直接连接到Exchange服务器,而不必担心在服务器上配置Outlook客户端。

为什么不能使用System.Net.Mail命名空间中的类使用SMTP发送电子邮件?这样,您就可以根据您将代表其发送电子邮件的部门更改发件人地址

如果你想在Outlook中代表第三人发送邮件,我认为你必须在Outlook中配置这些帐户。

MailItem对象有一个Sender属性,你可以用它来设置发件人。这个属性实际上是一个AddressEntry对象,你需要从Outlook中获取它。

在AddressEntry对象的MSDN文档中,您可以在其他资源部分找到如何完成它的示例。