2009-08-28 7 views
11

私は、弊社のExchangeサーバー経由でC#コードから電子メールを送信しようとしています。私はこれを実行すると、私はSmptExceptionが言ってもらうsmtpを使用せずに交換サーバー経由でメールを送信するには?

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("exchangebox1.mycompany.com"); 
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage("[email protected]", 
       "[email protected]", 
       "title here", 
       "body here"); 
      client.Send(msg); 

「送信チャネルを閉じて、サービスが利用できません。サーバーの応答は、伝送チャネルを閉じ、利用できません4.3.2サービスでした」。

私はこれが私たちのExchangeボックスでは有効になっておらず、ネイティブExchange Serverコマンドを使用してメールを送信する必要があると解釈しています。これは正しいのですか、SMTPは常に機能しますか?

さらに、特定のコンピュータ/ユーザだけがSMTP経由でメインを送信できるようにExchangeサーバを設定できた可能性はありますか?

SMTPを使用せずにExchange Server経由でメールを送信するにはどうすればよいですか?

ありがとうございました。

+0

をあなたは持っています電子メールを送信しているアカウントで転送が有効になっていますか?私はそれが認証を使用せずにそのアカウントで電子メールを送信できるように、Exchange管理者がそのアカウントで設定する必要があるものだと思う。 –

+0

ありがとう、私は試してみるよ。 –

答えて

7

あなたが実装する方法のWCF Exchange Server Mail Transport 例を使用することができますが、それは 上のSendメソッドを呼び出します。具体的には、アプリケーションがメッセージを送信

を言うメッセージを送信に関するHere

、 です現在の出力チャンネルは でなければなりません。出力チャネルは、 メッセージを文字列にシリアル化し、メッセージを というメッセージをDraftsフォルダに作成します。 は、 電子メールフィールドに適切な値を設定します。メッセージに が作成されると、 送信トレイに移動されます。これは、デバイスの のCEMAPIまたはExchange Web デスクトップのサービスを通じて発生します。 デバイスでは、Outboxのメッセージは、 で、ActiveSyncで定義されている他の発信メッセージ と同期しています。

3

送信前に以下の2行を追加してみてください:

client.UseDefaultCredentials = true; 
client.EnableSsl = true; 

それは最も可能性が高い私はGoogleからの少しをごまかすますのでそこには資格証明書であることないとの問題ですが...
From dailycode.net

+0

助けてくれてありがとう。私は同じ例外を受けるのではないかと心配しています。 –

4

新しいExchange WebサービスマネージAPI 1.0を使用できます。それは最善の解決策であるようです。 はリンクをheresします。

http://msdn.microsoft.com/en-us/library/dd637749(v=exchg.80).aspx
https://blogs.technet.com/b/exchange/archive/2009/04/21/3407328.aspx
にも配布リストを受け入れる受け入れます。

2。APIの0バージョン
http://msdn.microsoft.com/en-us/library/office/dd633709.aspx

+0

「このトピックはもう利用できません」ので、そこには行かないでください! – CSharper

+0

ちょっとしたリンクの腐敗。私は代替APIを置き換え、2.0バージョンのAPIへのリンクを追加しました。 – EBarr

0

私は、これは古いスレッドですけど、完全を期すために、あなたはのMicrosoft Exchange Webサービス nugetパッケージを検討する必要があります。

https://www.nuget.org/packages/Microsoft.Exchange.WebServices

ExchangeService service = new ExchangeService(); 
service.AutodiscoverUrl("[email protected]"); 

EmailMessage message = new EmailMessage(service); 
message.Subject = "my subject"; 
message.Body = "my body"; 
message.ToRecipients.Add("[email protected]"); 
message.Save(); 

message.SendAndSaveCopy(); 
関連する問題