5

我编写了 ASP.Net 代码来从 domain1.com 邮件帐户(例如 abc@domain1.com)发送邮件。否则此代码可以正常工作,并且邮件会发送。但是,当在 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 回答