none
System.Net.Mail で携帯へメールができません。 RRS feed

  • 質問

  •  

    下記のようにコーディングし

    パソコンへのメールは問題なくできるのですが、携帯(今のところAUだけ)へメールしようとすると

     

    メールボックス名は許可されていません。

    サーバーの応答: 5.7.1 sorry, that domain isn't in my list of allowed rcpthosts (chkuser)

     

    となります。

     

                Dim MAILto As MailAddress = New MailAddress("xxx@ezweb.ne.jp")
                Dim MAILmsg As String
                Dim MailFrom As MailAddress = New MailAddress("xxxx@xxxx.net")
                Dim MailMain As MailMessage = New MailMessage(MailFrom, MAILto)

                With MailMain
                    .Subject = "メール送信"
                    .SubjectEncoding = System.Text.Encoding.GetEncoding("shift_JIS")
                    MAILmsg = "ご利用ありがとうございます。" & vbCrLf & _
                              "※このメッセージに返信しないで下さい。"
                    .Body = MAILmsg
                    .BodyEncoding = System.Text.Encoding.GetEncoding("Shift_JIS")
                End With

                Dim myMail As SmtpClient = New SmtpClient("smtp.xxxx.net")
                Try
                    myMail.Send(MailMain)
                    myMail.Timeout = 15
                Catch ex As Exception
                    Response.Write(ex.Message)
                    Response.End()
                End Try

     

    わかる方いらっしゃいましたら、どうかよろしくお願いします。

    2008年3月3日 8:35

回答

  • 外池と申します。

     

    エラーメッセージの全体像がよくわからないので、あまりハッキリとは申し上げられませんが、おそらく、プログラムの問題ではないと思います。AUのメールのシステムの入り口を守っているサーバーが、貴方が使おうとしているsmtpサーバー"smtp.xxxx.net"を信頼していなくて、smtp.xxxx.netから転送されてくる貴方のメールを受け取ることを拒否しているのではないかと・・・。

     

    この場合、smtpサーバーをよく信頼してもらえるように処置する(携帯電話会社にも認知してもらえるようにする)ことが大切かと思います。

     

    あるいは、普段利用している大手のネットワークプロバイダーのsmtpサーバーへの接続ができるようであれば、それを利用されてはいかがですか?

     

    ちょっと、想像してみてください・・・。こういう機能のプログラムがあれば、どんなことが可能か? ですので、最近はsmtpサーバー同士の信頼関係がないと(お互いに認知していないと)メールが通じないことは良くあることです。

     

     

     

    2008年3月3日 9:02
  • 外池です。うーん・・・・。

     

    maria-mamaさんが再度、ここのページをご覧になるかどうかわかりませんが、一応、念のために申し上げておきます。

     

    もし、どこかの不特定な会社のsmtpサーバーをご利用になる解決策を採られたならば、そのような方法でのメールの送信は、やめて頂くように、お願いします。私は、決してそのような解決策を提案したわけではありません。

     

    貴方が独自で管理するsmtpサーバーを立ち上げて、信頼されるものにするか、

     

    あるいは、契約により機能を借り受ける等の形をとって、smtpサーバーの所有者(管理者)と貴方との間で、使用方法について了解を成立させるようにしてください。

    2008年3月3日 12:12
  • 少し不思議なのですが、maria-mamaさんは今回、どのようにして解決されたのでしょうか? 後学のために教えていただけませんでしょうか? smtpサーバー同士の信頼関係というのが思い浮かびませんか、逆引きできるかどうかということを指しているのでしょうか?

    ただ、逆引きで判断することには反対ですし、逆引きできないサーバからでも各携帯キャリアに送信することは可能です。(去年の夏に確かめた時の話です)

    2008年3月4日 1:23
    モデレータ
  • ご回答ありがとうございます。

    少し調べてみましたが、sorry, that domain isn't in my list of allowed rcpthostsというメッセージはSMTP認証をしていなかった時によく出るメッセージのようです。smtp.xxxx.netには、例えばPOP before SMTPなどが必要だったりしませんでしょうか? ただ、これだとなぜパソコンメールへは送れたのかという疑問が残ります。ひょっとして、パソコンメールは自ドメイン宛てへのメールだったのでしょうか? 自ドメインからは何らかの理由でSMTP認証を行う必要がないのかもしれません。(以前、私もそのように設定したことがあります)

    以上のことは一つの可能性ですので、的を外しているかもしれません。その際はごめんなさい。

     

    また、sorry, that domain isn't in my list of allowed rcpthostsというメッセージが送信アプリケーションで表示されるのであれば、ほぼ間違いなくsmtp.xxxx.netからの応答ですから、必要であればこのサーバーの管理者にお問い合わせされたらいかがかと思います。

     

    (参考)

    メールを送信しようとすると、「553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)」というエラーが表示され、メールが送信出来ません。
    http://web.arena.ne.jp/suite2/faq/014_16.html

     

    送信ができません(受信は可能)
    http://sb.xrea.com/archive/index.php/t-6288.html

    2008年3月4日 3:26
    モデレータ

すべての返信

  • 外池と申します。

     

    エラーメッセージの全体像がよくわからないので、あまりハッキリとは申し上げられませんが、おそらく、プログラムの問題ではないと思います。AUのメールのシステムの入り口を守っているサーバーが、貴方が使おうとしているsmtpサーバー"smtp.xxxx.net"を信頼していなくて、smtp.xxxx.netから転送されてくる貴方のメールを受け取ることを拒否しているのではないかと・・・。

     

    この場合、smtpサーバーをよく信頼してもらえるように処置する(携帯電話会社にも認知してもらえるようにする)ことが大切かと思います。

     

    あるいは、普段利用している大手のネットワークプロバイダーのsmtpサーバーへの接続ができるようであれば、それを利用されてはいかがですか?

     

    ちょっと、想像してみてください・・・。こういう機能のプログラムがあれば、どんなことが可能か? ですので、最近はsmtpサーバー同士の信頼関係がないと(お互いに認知していないと)メールが通じないことは良くあることです。

     

     

     

    2008年3月3日 9:02
  • 外池さん、はじめまして。

     

    早速色々試してみたところ、大手プロバイダではなくても

    .co.jpのsmtpで送信&解決しました。

     

    本当に助かりました。ありがとうございました。

    2008年3月3日 9:27
  • 外池です。うーん・・・・。

     

    maria-mamaさんが再度、ここのページをご覧になるかどうかわかりませんが、一応、念のために申し上げておきます。

     

    もし、どこかの不特定な会社のsmtpサーバーをご利用になる解決策を採られたならば、そのような方法でのメールの送信は、やめて頂くように、お願いします。私は、決してそのような解決策を提案したわけではありません。

     

    貴方が独自で管理するsmtpサーバーを立ち上げて、信頼されるものにするか、

     

    あるいは、契約により機能を借り受ける等の形をとって、smtpサーバーの所有者(管理者)と貴方との間で、使用方法について了解を成立させるようにしてください。

    2008年3月3日 12:12
  • >もし、どこかの不特定な会社のsmtpサーバーをご利用になる解決策を採られたならば、そのような方法でのメールの送信は、やめて頂くように、お願いします。私は、決してそのような解決策を提案したわけではありません。

     

    >貴方が独自で管理するsmtpサーバーを立ち上げて、信頼されるものにするか、

     

    >あるいは、契約により機能を借り受ける等の形をとって、smtpサーバーの所有者(管理者)と貴方との間で、使用方法について了解を成立させるようにしてください。

     

     

    外池様

     

    ご指摘ありがとうございます。

     

    不特定な会社のsmtpサーバーを使用するのではなく

    弊社で正式に契約しているものを使用します。

    今後は、使用方法について、サーバーの所有者の了解を得る方向で進めていきたいと

    考えております。

    2008年3月4日 0:41
  • 少し不思議なのですが、maria-mamaさんは今回、どのようにして解決されたのでしょうか? 後学のために教えていただけませんでしょうか? smtpサーバー同士の信頼関係というのが思い浮かびませんか、逆引きできるかどうかということを指しているのでしょうか?

    ただ、逆引きで判断することには反対ですし、逆引きできないサーバからでも各携帯キャリアに送信することは可能です。(去年の夏に確かめた時の話です)

    2008年3月4日 1:23
    モデレータ
  • 下記の通りに変更しただけですが。。。

     

    何か問題がありましたら、ご指摘下さい。

     

    Dim MAILto As MailAddress = New MailAddress("xxx@ezweb.ne.jp")
    Dim MAILmsg As String
    Dim MailFrom As MailAddress = New MailAddress("xxxx@xxxx.net")
    Dim MailMain As MailMessage = New MailMessage(MailFrom, MAILto)

                With MailMain
                    .Subject = "メール送信"
                    .SubjectEncoding = System.Text.Encoding.GetEncoding("shift_JIS")
                    MAILmsg = "ご利用ありがとうございます。" & vbCrLf & _
                              "※このメッセージに返信しないで下さい。"
                    .Body = MAILmsg
                    .BodyEncoding = System.Text.Encoding.GetEncoding("Shift_JIS")
                End With

                Dim myMail As SmtpClient = New SmtpClient("smtp.xxxx.net")

          ↑この部分を↓に修正

                Dim myMail as Smtpclient = New SmtpClient("mail.xxx.co.jp")
                Try
                    myMail.Send(MailMain)
                    myMail.Timeout = 15
                Catch ex As Exception
                    Response.Write(ex.Message)
                    Response.End()
                End Try

    2008年3月4日 2:39
  • ご回答ありがとうございます。

    少し調べてみましたが、sorry, that domain isn't in my list of allowed rcpthostsというメッセージはSMTP認証をしていなかった時によく出るメッセージのようです。smtp.xxxx.netには、例えばPOP before SMTPなどが必要だったりしませんでしょうか? ただ、これだとなぜパソコンメールへは送れたのかという疑問が残ります。ひょっとして、パソコンメールは自ドメイン宛てへのメールだったのでしょうか? 自ドメインからは何らかの理由でSMTP認証を行う必要がないのかもしれません。(以前、私もそのように設定したことがあります)

    以上のことは一つの可能性ですので、的を外しているかもしれません。その際はごめんなさい。

     

    また、sorry, that domain isn't in my list of allowed rcpthostsというメッセージが送信アプリケーションで表示されるのであれば、ほぼ間違いなくsmtp.xxxx.netからの応答ですから、必要であればこのサーバーの管理者にお問い合わせされたらいかがかと思います。

     

    (参考)

    メールを送信しようとすると、「553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)」というエラーが表示され、メールが送信出来ません。
    http://web.arena.ne.jp/suite2/faq/014_16.html

     

    送信ができません(受信は可能)
    http://sb.xrea.com/archive/index.php/t-6288.html

    2008年3月4日 3:26
    モデレータ
  • trapemiyaさん

     

    メッセージを調べていただきありがとうございます。勉強になります。

     

    修正前は自ドメイン以外のパソコンメールへの送信はできました。

     

    修正後も同様です。

     

    これから色々テストしていく中で、trapemiyaさんがおっしゃる通りの現象が起きるかもしれません。

    2008年3月4日 4:12
  • こんにちは。中川俊輔 です。

     

    外池さん、trapemiyaさん、回答ありがとうございます。

     

    maria-mamaさん、フォーラムのご利用ありがとうございます。

    有用な情報と思われたため、

    勝手ながら外池さん、trapemiyaさんの回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    有用な情報と思われる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

    maria-mamaさんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

     

    2008年3月7日 9:23