2012-02-15 12 views
3

既定のログインアカウントから電子メールを送信する作業フォームがあります。私はユーザーがドロップダウンリストから電子メールアカウントを選択し、[email protected][email protected]のようなaltアドレスを使って電子メールを送信できる機能を追加しようとしています。私は "SendUsingAccount"オプションを使用しようとしていますが、運はありません。私はオンラインで見ているが、ほとんどの場合VBに慣れていない例を見つける。私のコードは次の通りです:ログインしたユーザーとは異なる電子メールアカウントを使用してC#で電子メールを送信する方法

Microsoft.Office.Interop.Outlook.Application objOutlook = new Microsoft.Office.Interop.Outlook.Application(); 
var mic = (MailItem)(objOutlook.CreateItem(OlItemType.olMailItem)); 
Inspector oAddSig = null; 

mic.sendusingaccount = ??????????????  //here is where i need the help 
mic.Subject = "Announcing Participant Website Enhancements!"; 
mic.Importance = OlImportance.olImportanceHigh; 
mic.BodyFormat = OlBodyFormat.olFormatHTML; 
//mic.Attachments.Add(PDFAttachment + yearending.Text + ".pdf"); 
object emailBody = ToolBox.GetStringFromTextFile((string)EmailBody); 
oAddSig = mic.GetInspector; 
mic.HTMLBody = emailBody + mic.HTMLBody; 
//mic.Display(true); 
mic.Send(); 

答えて

3

私はいつもSystem.Net.Mail名前空間のSMTPクライアントを使います。 http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx

を限り、あなたは、Exchangeサーバーのアドレスを知っている(これは:それはそれをチェックアウト

「から」あなたはメッセージがある人のアドレスを提供することを可能にする「送信」と呼ばれる方法がありますあなたの例ではOutlookを使用しようとしているのでOKです)、すべてがA-OKでなければなりません。おそらく上記のアプローチよりもやや簡単です。

+0

私はsmtpを使いたくないので、私はこのフォームを複数のアプリで使います。私は元のアドレスを変更したいだけです。どのように最も簡単なものが一番難しい? –

+0

実証済みのソリューションを使用しないことで、ハードになっています。 SMTPクライアントを使用できない理由はありますか? –

+0

私たちのsmtp設定がわからない場合や設定されている場合でも。私はあなたにsmtpサーバーアドレスを教えてもcouldntします。 –

2

あなたはそのDDの値とasign sendusingaccount =あなたの文字列

Microsoft.Office.Interop.Outlook.Application objOutlook = new  Microsoft.Office.Interop.Outlook.Application(); 
    string email = yourdropdown.selectedvalue; 
    var mic = (MailItem)(objOutlook.CreateItem(OlItemType.olMailItem)); 
    Inspector oAddSig = null; 
    mic.sendusingaccount = email 

で文字列を作成することができますドロップダウンを持っている場合、私はあなたが

+0

これは私の好みの方法ですが、エラーが出ます。それがsendusingaccountを見つけられなかったり、 "文字列の電子メール"を "アカウントの電子メール"に変換しようとすると、文字列からアカウントの種類に変換されません。 –

1
Outlook.Account account = 
    Application.Session.Accounts["Hotmail"]; 
mic.SendUsingAccount = account; 

このヘルプは、あなたがチェックすることができるかもしれませ願っていますセッションのさまざまなアカウント...

あなたが確認できます: MSDN

関連する問題