5

abc@domain1.comなどのdomain1.comメールアカウントからメールを送信するASP.Netコードを作成しました。それ以外の場合、このコードは正常に機能し、メールは送信されます。ただし、同じコードがdomain2.comで実行されると、userid-pwdが正しい場合でも、次のエラーが発生します。

System.Net.Mail.SmtpFailedRecipientException:メールボックス名は許可されていません。サーバーの応答は次のとおりです。申し訳ありませんが、そのドメインはSystem.Net.Mail.SmtpClient.Send(MailMessage message)の許可されたrcpthosts(#5.7.1)のリストに含まれていません。

これを修正する方法はありますか?

許可されたrcphostsのリストにこのドメインを追加する必要がある場合、どのようにそれを行うことができますか?

書かれたコードは次のようなものです。

MailMessage message;
bool success;
message = new MailMessage(from, to);
Attachment file;
SmtpClient lclient;


lclient = new SmtpClient("mail.domain1.com", 587);
lclient.EnableSsl = false;

message.Body = body;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
message.Subject = subject;
message.SubjectEncoding = System.Text.Encoding.UTF8;

lclient.SendCompleted += new 
SendCompletedEventHandler(SendCompletedCallback);
lclient.UseDefaultCredentials = false;
lclient.Credentials = new NetworkCredential(userID, password);
try
{

  lclient.Send(message);
  success = true;
  if (message != null)
      message.Dispose();
  success = true;
  return (success);
}
catch (Exception ex)
{  
    //...
}

ありがとう

4

1 に答える 1

5

コードは正常に機能します。エラーはSMTPサーバーからの拒否です。Domain1からアクセスすると、サーバーを介してメールを転送できるように見えます。Domain2からアクセスする場合、アクセスしません。これを変更すると、SMTPサーバーの構成になります。

これはSMTPサービスの一般的な方法であることに注意してください。彼らは一般的に誰もが彼らを通してどのアドレスにもメールを送ることを許可していません。(これにより、スパマーやその他の不要なアクティビティに対して広く開かれたままになります。)したがって、Domain1の外部からDomain1のSMTPサービスにアクセスしようとしている場合は、おそらくそれを拒否しているだけです。

于 2012-04-23T14:35:03.197 に答える