我有一個將安裝在服務器上的應用程序,它連接到互聯網。 Microsoft Outlook也將被安裝。系統將處理來自5個不同部門的請求,每個部門都有自己的電子郵件地址。使用C#在outlook中更改發件人
我看過這段代碼,Microsoft Outlook Send and Email Automation C#所以我知道如何使用Outlook發送電子郵件,但是我面臨的問題是更改電子郵件的發件人。如何爲每個需要從C#發送的部門設置Outlook的配置?有沒有辦法改變用戶登錄或什麼?
我有一個將安裝在服務器上的應用程序,它連接到互聯網。 Microsoft Outlook也將被安裝。系統將處理來自5個不同部門的請求,每個部門都有自己的電子郵件地址。使用C#在outlook中更改發件人
我看過這段代碼,Microsoft Outlook Send and Email Automation C#所以我知道如何使用Outlook發送電子郵件,但是我面臨的問題是更改電子郵件的發件人。如何爲每個需要從C#發送的部門設置Outlook的配置?有沒有辦法改變用戶登錄或什麼?
如果您使用Outlook連接到Exchange服務器,則可以使用Exchange Web Services Managed API(尤其是EmailMessage
類)直接連接到Exchange服務器,而無需擔心在服務器上配置Outlook客戶端。
謝謝你的工作:) – msytNadeem 2011-12-27 13:05:20
爲什麼不能使用System.Net.Mail namespace中的類來使用SMTP發送電子郵件。 這樣你就可以根據代表你發送郵件的部門更改發件人地址
Interop打開Outlook應用程序的方式不是微不足道的。但是,您不需要像每次配置smtp服務器等細節一樣,因爲outllok配置文件已經具有相同的功能。 – hustler 2011-12-27 10:34:42
mmmm,我不想使用這個,因爲我希望所有的數據都可以在我的outlook中得到解決 – msytNadeem 2011-12-27 13:05:47
如果你想代表第三方從Outlook發送郵件,我認爲你必須在Outlook中配置這些帳號。
MailItem對象具有可用於設置發件人的發件人屬性。該屬性實際上是一個AddressEntry對象,您需要從Outlook中進行檢索。
在MSDN Documentation for AddressEntry object中,您可以找到有關如何在其他資源部分執行此操作的示例。
這可能是一個解決方案,但我更喜歡交換解決方案,好多了,謝謝:) – msytNadeem 2011-12-27 13:06:28
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);
}
}
你可能不想走前景。只需使用SMTP將更易於移植,使用和管理。 – CodingBarfield 2011-12-27 10:56:34