- - PR -
SmtpClientで複数の送信先の指定方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-06-18 14:46
お世話になっております。
SmtpClientでメールを送信したいのですが、送信先が複数の時の指定方法を教えて下さい。 下記のソース(抜粋)で一応メールの送信はできているのですが、送信先が複数の時には最初の送信先にしかメールが送信されません。 掲載したソースでは pMm.To.Add(New MailAddress(pToAddr.ToString())) と一行で書いていますが、一応FORループを使って pMm.To.Add(New MailAddress(pToAddr.Item(i).ToString())) のようにしてアドレス分のaddを発行してみたりもしたのですが同様です。 メールサーバーはExchangeサーバーです。 アドバイスをお願いします Dim smtpClient As SmtpClient Dim pMm As MailMessage Dim pFromAddr As MailAddress Dim pToAddr As MailAddressCollection Dim pSubject As String Dim pBody As String Try smtpClient = New SmtpClient pMm = New MailMessage pMm = New MailMessage() pMm.From = pFromAddr Dim dTo As String = pToAddr.ToString() ' デバッガで確認したらdToには "addr1@xxx.com, addr2@xxx.com" がセットされていました pMm.To.Add(New MailAddress(pToAddr.ToString())) pMm.Subject = pSubject pMm.SubjectEncoding = System.Text.Encoding.GetEncoding(50220) pMm.Body = pBody pMm.BodyEncoding = System.Text.Encoding.GetEncoding(50220) smtpClient.Send(pMm) Catch ex As Exception Console.WriteLine("In Main catch block. Caught: {0}", ex.Message) Console.WriteLine("Inner Exception is {0}", ex.InnerException) Return False End Try | ||||
|
投稿日時: 2008-06-18 17:20
こんにちは。
ここら辺のコーディングを見直してみてください。 方法1 pMm.To.Add("recipient1@example.com,recipient2@example.com"); 方法2 pMm.To.Add(new MailAddress("recipient1@example.com")); pMm.To.Add(new MailAddress("recipient2@example.com")); どちらの書き方でも2つの宛先に送信されるはずです。 念のため Exchamge Server 2007 で挙動を確認しましたがどちらの方法でも問題ありませんでした。 _________________ 上本亮介 (ue) @ わんくま同盟 Microsoft MVP for VSTO (Jul 2008 - Jun 2009) Hello Another World! .NET 勉強会 / ヒーロー島 | ||||
|
投稿日時: 2008-06-19 13:03
アドバイスありがとうございます。
にすることで送信できました。 私のやり方は pMm.To.Add(new MailAddress("addr1@xxx.com, addr2@xxx.com")); になってしまっていました。 new MailAddress("addr1@xxx.com, addr2@xxx.com")の部分でメールアドレスの形式がおかしいなら例外でも発生させてくれればいいのにaddr1@xxx.comの部分だけで処理を継続しています。 これが親切な仕様なのか判りませんが、エラーとしてはじくか、両方のアドレスを生かすかにして欲しかったです・・・(愚痴愚痴) いずれにしろ解決できましたのでue様のアドバイスに感謝します!! ありがとうございました。 |
1