- - PR -
メール送信機能。
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-12-09 07:47
C#とASP.NETを使用し、SMTPメールを送信しようとしているのですが、うまくいきません。
System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage(); //送信者 mm.From = "hty_izumonokami@yahoo.co.jp"; //送信先 mm.To = "hty_izumonokami@yahoo.co.jp"; //題名 mm.Subject =txt_mail_title.Text; //本文 mm.Body =txt_mail_sentence.Text; //JISコードに変換する mm.BodyEncoding = System.Text.Encoding.GetEncoding(50220); //SMTPサーバーを指定する System.Web.Mail.SmtpMail.SmtpServer = "smtp.mail.yahoo.co.jp" ; //送信する System.Web.Mail.SmtpMail.Send(mm); コード自体おかしい所はないと思うのですが、 サーバーによって送信者アドレスが拒否されました。サーバーからの応答は次のとおりです。521 smtp.mail.yahoo.co.jp closing transmission channel. You must be pop-authenticated before you can use this smtp server, and you must use your yahoo mail address for the Sender/From field. とのエラーが表示されます。 明らかにyahooの認証が関係しているような気がしています。もし同じようなプログラムを書いていて解決した方などがいらっしゃったら、何かご指導いただければと思います。 宜しくお願いします。 | ||||
|
投稿日時: 2003-12-09 08:51
中ほどのところを訳すと,「smtpサーバを使う前にpop認証を行わなければならない。」ということです。この仕様については「POP before SMTP」で検索すれば詳しい解説が出てると思うので,そちらを参照してみて下さい。 [ メッセージ編集済み 編集者: KeroKero 編集日時 2003-12-09 08:52 ] | ||||
|
投稿日時: 2003-12-09 09:59
参考資料ありがとうございます。
とても参考になりました。 いろいろ読んでみて納得しました。 どうやらサポートされているのが少なくyahooとかでは受信できないようですね? | ||||
|
投稿日時: 2003-12-09 11:00
POP before SMTPを調べてみると、SMTPの前にPOPをすればいいだけみたいなので、
SmtpMail.Sendの前に以下のようなコードを実行すればいいのではないでしょうか?
詳しくは、http://dobon.net/vb/dotnet/internet/receivepop3mail.html などを参考 (上記URLのサンプルだとメールを取ってきて消すので注意) | ||||
|
投稿日時: 2003-12-09 23:32
System.Net.Sockets.TcpClient tcp=new System.Net.Sockets.TcpClient();
tcp.Connect("www.yahoo.com",80); StreamWriter sw = new StreamWriter(tcp.GetStream()); sw.Write("USER ユーザ名\nPASS パスワード\nSTAT\nQUIT\n"); System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage(); //送信者 mm.From = "**@yahoo.co.jp"; //送信先 mm.To = "**@yahoo.co.jp"; //題名 mm.Subject =txt_mail_title.Text; //本文 mm.Body =txt_mail_sentence.Text; //JISコードに変換する mm.BodyEncoding = System.Text.Encoding.GetEncoding(50220); //SMTPサーバーを指定する System.Web.Mail.SmtpMail.SmtpServer = "smtp.mail.yahoo.co.jp" ; //送信する System.Web.Mail.SmtpMail.Send(mm); という形にしたのですが、同じようなエラーが出てしまい、yahoo側から拒絶されます。 パスワードとIDのところがおかしいのでしょうか? | ||||
|
投稿日時: 2003-12-10 00:44
なぜにWebサーバの80に… POPサーバのPOPのポートにつないでください… | ||||
|
投稿日時: 2003-12-10 00:50
sachiさん、こんばんは。
POP before SMTP の仕様については知りませんが、通常、POP3のポートは110番で、80番はHTTPじゃないかと思うんですが...。 また、メールサーバは www.yahoo.com でいいんですか? 取り敢えず telnet とか使って、指定ホストの指定ポートに接続出来るかどうか、確認してみては如何でしょうか。 | ||||
|
投稿日時: 2003-12-10 00:53
あ!ごめんなさい。送信なんで25でしょうか・・・?
それでやってもやはり、拒否されてしまいます。 |
1|2|3
次のページへ»