2011-10-26 1 views
4

利用可能になったとき、私は自分のコード内の特定のアドレスに電子メールを送信しようとすると、私はこのエラーを取得:「SmtpFailedRecipientException:メールボックスが利用できない」メールボックスが

System.Net.Mail.SmtpFailedRecipientException:メールボックスが利用できません。サーバーの応答は次のとおりです。不明なユーザー

このコードは、私と2人の電子メールアドレスに電子メールを送信します。電子メールは私にはうまく送信されますが、電子メールを彼に送信しようとすると、そのエラーが発生します。

このエラーの一般的な説明は、電子メールアドレスが無効であるか、メールボックスがいっぱいでメールの受信が許可されていないか、またはサーバー上でそれを制限している設定がある電子メールを受信することから。

メールアドレスはメールを受け取ることができますが、私は今すぐメールで連絡しています。

このエラーが発生する他の理由はありますか?

EDIT:

は、ここで多分誰かが問題を見つけることができ、コードです。私はパラメータが渡されているチェックし、すべてのデータが正確である:

private static void SendEmail(IEnumerable<MailAddress> to, MailAddress from, 
    string subject, string body, string bodyHtml) 
{ 
    var mail = new MailMessage { From = from, Subject = subject }; 

    foreach (var address in to) 
    { 
     mail.To.Add(address); 
    } 

    mail.AlternateViews.Add(
     AlternateView.CreateAlternateViewFromString(bodyHtml, null, "text/html")); 
    mail.AlternateViews.Add(
     AlternateView.CreateAlternateViewFromString(body, null, "text/plain")); 

    try 
    {     
     var smtp = new SmtpClient("localhost", 25) 
      { 
       Credentials = new NetworkCredential("xxx", "xxx") 
      }; 

     smtp.Send(mail); 
    } 
    catch (Exception err) 
    { 
     Elmah.ErrorSignal.FromCurrentContext().Raise(err); 
    } 
} 
+0

サーバ側では、静的IPからのsmtpを受け入れることや、またはMXレコード(DNS)などに対してIPをチェックする。 – Yahia

+0

あなたのSMTP設定を再チェックしましたか?(web.configか、 System.Net.Mailオブジェクト)を使用して、適切なサーバーを使用していることを確認します(例:あなたのローカルホストではない)? –

+0

@Brian - 私はlocalhostを使用していますが、それは私がホスティング会社で働く管理者が使用するように言われたものでした。それは正常に動作しているようだ、少なくとも私に電子メールを送信します。 – Steven

答えて

7

と仮定すると、SMTP設定が、これはおそらく、サーバー側の制限のケースで正しい...スパムを防ぐために、例えば

サーバは静的送信者IPからのsmtpを受け入れ、MXレコード(DNS)などに対して送信者IPをチェックしているだけです。

+0

はい。サーバーが逆DNSルックアップを行っている場合、これが起こる可能性があります。なぜそれが1つのアドレスに送信し、他のアドレスに送信するのではなく、むしろ混乱します。 –

関連する問題