System.Net.Mail.SmtpFailedRecipientException:不允许使用邮箱名称

时间:2012-04-23 14:33:07

标签: asp.net smtpclient

我编写了ASP.Net代码,用于从domain1.com邮箱帐户发送邮件,例如abc@domain1.com。这段代码工作正常,邮件就行了。但是当在domain2.com上执行相同的代码时,即使使用正确的userid-pwd,它也会出现以下错误:

System.Net.Mail.SmtpFailedRecipientException:不允许使用邮箱名称。服务器响应是:抱歉,该域不在我的System.Net.Mail.SmtpClient.Send(MailMessage消息)中允许的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)
{  
    //...
}

由于

1 个答案:

答案 0 :(得分:5)

代码工作正常。该错误是SMTP服务器的拒绝。从Domain1访问服务器似乎允许您通过它转发邮件。从Domain2访问时,它不会。更改此项将是SMTP服务器上的配置。

请注意,这是SMTP服务的常见做法。他们通常不允许任何人通过他们发送邮件到任何地址。 (这会使他们对垃圾邮件发送者和其他此类不受欢迎的活动敞开大门。)因此,如果您尝试从Domain1外部访问Domain1的SMTP服务,那么可能只是拒绝它。