2011-06-29 96 views
0

我試圖從列爲文件夾的電子郵件地址發送電子郵件。基本上我有一個電子郵件地址分配給它的文件夾。每當有東西到達該電子郵件,它就會進入該文件夾。電子郵件地址不是分配給我的帳戶。我會使用SMTP但我們的公司網絡不允許這樣做。C#Outlook Interop從文件夾發送

如何從C#文件夾的電子郵件中發送電子郵件?

我的代碼設置如下。

Outlook.Application oApp = new Outlook.Application(); 

Outlook.NameSpace oNS = oApp.GetNamespace("mapi"); 
oNS.Logon(Missing.Value, Missing.Value, true, true); 

Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem); 

oMsg.Subject = subject; 

string html; 
html = message; 

html = html.Replace("\n","<br/>"); 
oMsg.HTMLBody = html; 
Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients; 
Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(to); 


//Rest of my closing stuff here. 

回答

0

如果你已經有文件夾的電子郵件地址(你不提,如果這是問題的一部分,但它聽起來是不是),你不應該使用Outlook互操作這一點。試試System.Net.Mail中的課程。 This site有一些很好的例子,但這裏的東西快:

const string PR_SMTP_ADDRESS = 
    "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"; 
... 

var msg = new MailMessage(); 
msg.From = new MailAddress(recipient.PropertyAccessor.GetProperty(PR_SMTP_ADDRESS).ToString()); 
msg.To.Add(new MailAddress(folderAddress)); 
msg.Subject = subject; 
msg.IsBodyHtml = true; 
msg.Body = html; 

var smtpClient = new SmtpClient("{SMTP server address or IP}"); 
smtpClient.Send(msg); 

我只是猜測,我得到收件人地址的一部分,它是基於this MSDN page

+0

我很抱歉,我忘了提。我們的網絡不允許我們使用公司的SMTP服務器。我只能通過Outlook發送/接收郵件。 –

0

對我來說,整個文件夾thingy與您的問題無關(如果我在那裏出錯,請糾正我的錯誤),並且所有問題都歸結於您想通過Outlook發送電子郵件並附帶特定回覆地址。您可以使用MailItem.SenderEmailAddress用於這一目的:

oMsg.SenderEmailAddress = "[email protected]" 

作爲替代方案,你可以回覆地址添加到收藏MailItem.ReplyRecipients

+0

這兩個對象都設置爲只讀。我相信它們是用於if語句而不是實際設置要發送的電子郵件的值。 我覺得我失去了這些東西的東西,但我找不到任何相反的東西。 –

相關問題