C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: SmtpMailクラスでメールが送信できない


(過去ログ 31 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■15211 / inTopicNo.1)  SmtpMailクラスでメールが送信できない
  
□投稿者/ natural (7回)-(2008/03/07(Fri) 02:25:16)

分類:[C#] 

たびたびお世話になっています。
naturalです。

VisualStudio2003のC#で、メール送信を行うWindowsサービスを作成しています。
(.net Framework 1.1です。2は使用できません)

SmtpMailクラス(System.Web.Mail)を使用し、
メールを送信するテストを行っているのですが、以下の例外が発生してしまいます。
++++++
System.Web.HttpException: 'CDO.Message' オブジェクトにアクセスできませんでした。
---> System.Reflection.Targ etInvocationException: 呼び出しのターゲットが例外をスローしました。
---> System.Runtime.InteropServices.COMException (0x8004020E): The server rejected the sender address. The server response was: 521 mail not accepted from this domain --- 内部例外スタック トレースの終わり ---
at System.Run timeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedP arameters)
at System.RuntimeType.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier [] modifiers, CultureInfo culture, String[] namedParameters)
at System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Obje ct target, Object[] args)
at System.Web.Mail.LateBoundAccessHelper.CallMethod(Type type, Object obj, String methodName, Object[] args)
at Syst em.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args) --- 内部例外スタック トレースの終わり ---
at System .Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args)
at System.Web.Mail.CdoSysHelper.Send(MailMessage message)
at System.Web.Mail.SmtpMail.Send(MailMessage message)
at BusinessTripBoardService.MailSender3.CreateAndSendMail(String[] record) in c:\cvs\us erside\businesstripboard\src\program\businesstripboardservice\mailsender3.cs:line 371
at BusinessTripBoardService.MailSender3.SendFlashReportMail( ArrayList mailDataArray) in c:\cvs\userside\businesstripboard\src\program\businesstripboardservice\mailsender3.cs:line 311
at BusinessTripBoardSer vice.MailSender3.SendFlashReportMail() in c:\cvs\userside\businesstripboard\src\program\businesstripboardservice\mailsender3.cs:line 64
at Busines sTripBoardService.BusinessTripBoardService.OnFlashReportMailEvent(Object source, ElapsedEventArgs e) in c:\cvs\userside\businesstripboard\src\program\ businesstripboardservice\businesstripboardservice.cs:line 776
+++++++
尚、送信に使用しているメールアドレス・SMTPサーバは、
Yahooメールのものを使用しています。
テストで、メールクライアントソフト(EDMAX)に設定を行い、
メール送信をしてみたところ送信できているので、
SMTPサーバ・メールアドレス自体には特に問題はないと思われます。

送信できない理由・修正方法について、お分かりになる方がいらっしゃいましたら、
教えていただけませんでしょうか?

よろしくお願いいたします。
引用返信 編集キー/
■15212 / inTopicNo.2)  Re[1]: SmtpMailクラスでメールが送信できない
□投稿者/ やじゅ (220回)-(2008/03/07(Fri) 04:22:11)
やじゅ さんの Web サイト
2008/03/07(Fri) 04:22:45 編集(投稿者)

No15211 (natural さん) に返信
> ---> System.Runtime.InteropServices.COMException (0x8004020E): The server rejected the sender address.
> 送信できない理由・修正方法について、お分かりになる方がいらっしゃいましたら、
> 教えていただけませんでしょうか?
>

エラーを訳す。
COMException (0x8004020E): サーバーによって送信者アドレスが拒否されました。
引用返信 編集キー/
■15214 / inTopicNo.3)  Re[1]: SmtpMailクラスでメールが送信できない
□投稿者/ シャノン (312回)-(2008/03/07(Fri) 09:52:54)
No15211 (natural さん) に返信
> 尚、送信に使用しているメールアドレス・SMTPサーバは、
> Yahooメールのものを使用しています。
> テストで、メールクライアントソフト(EDMAX)に設定を行い、
> メール送信をしてみたところ送信できているので、
> SMTPサーバ・メールアドレス自体には特に問題はないと思われます。

Outbound Port25 Blocking によって拒否されているように見受けられます。
本当に EDMAX と設定が同じになっているでしょうか?
引用返信 編集キー/
■15216 / inTopicNo.4)  Re[2]: SmtpMailクラスでメールが送信できない
□投稿者/ シャノン (313回)-(2008/03/07(Fri) 10:29:46)
No15214 (シャノン さん) に返信
> ■No15211 (natural さん) に返信
>>尚、送信に使用しているメールアドレス・SMTPサーバは、
>>Yahooメールのものを使用しています。
>>テストで、メールクライアントソフト(EDMAX)に設定を行い、
>>メール送信をしてみたところ送信できているので、
>>SMTPサーバ・メールアドレス自体には特に問題はないと思われます。
>
> Outbound Port25 Blocking によって拒否されているように見受けられます。
> 本当に EDMAX と設定が同じになっているでしょうか?

例えば、ポートは587になってます?
http://dobon.net/vb/dotnet/internet/smtpport.html
引用返信 編集キー/
■15232 / inTopicNo.5)  Re[3]: SmtpMailクラスでメールが送信できない
□投稿者/ natural (8回)-(2008/03/07(Fri) 20:23:29)
みなさん、アドバイスありがとうございます。
お礼、及び、報告が遅れまして、すみませんでした。

■やじゅ様
>COMException (0x8004020E): サーバーによって送信者アドレスが拒否されました。
まさにこれでした。
が、設定したアドレスが間違っていなかった(コピペしたため)ので、
悩みました。

■シャノン様
回答ありがとうございました。
EDMAXと同じ設定(コピペしたので間違いありませんでした)でした。
ポートはどちらも25番ポートを使用しています。

結論としては、どうやらYahooメールは、
「SMTP before POP3」(で合っていますか?)のようで、
EDMAXでは、一度送受信を行ってから送信テストを行ったため、うまくいっていたようです。

しばらく後でもう一度確認したときには、
1.プログラムからテスト→NG
2.EDMAXで送信テスト→NG
3.EDMAXで受信操作後、送信テスト→OK
4.プログラムからテスト→OK
となりました。

「SMTP before POP3」について、そもそもあまりわかっていないため、
(言葉のとおり、送信前にPOP3で認証するということでしょうか)
勉強し、それから、先に受信動作を実行する実装を調べ、
プログラムしてみようと思います。

どうもありがとうございました。
また、続報をお知らせできたらと思います。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -