2011-06-29 11 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

フォルダ全体があなたの問題とは無関係です(私が間違っていれば私を修正してください)。そして、あなたが特定の返信先アドレスでOutlookを介して電子メールを送信したいと思っているのです。あなたはMailItem.ReplyRecipientsコレクションに返信アドレスを追加することができ、別の方法として

oMsg.SenderEmailAddress = "[email protected]" 

:あなたは、その目的のためにMailItem.SenderEmailAddressを使用することができます。

+0

これらのオブジェクトは両方とも読み取り専用に設定されています。実際に送信される電子メールの値を設定するのではなく、if文のためのものだと私は信じています。 私はこれらのオブジェクトで何かが欠けているように感じますが、逆のことは何も見つかりません。 –

関連する問題