交易失败。服务器响应是:SMTP主机

时间:2012-08-08 13:44:19

标签: c# asp.net smtpclient

我一直在努力制作一个简单的电子邮件发送APP,我被这个错误阻止,我似乎找不到任何有这个问题的人(有点无法搜索到什么)

因此,当我尝试发送电子邮件时,我遇到此错误,它只是使用我的SMTP主机名称返回此错误,

  

交易失败。服务器响应是:smtp.host.com

如果我查看跟踪,它会在

处崩溃
  

在System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)

这是代码示例,没什么特别的。

MailMessage mail = new MailMessage();
mail.From = new MailAddress(CurrentUser.email);
mail.Subject = txtSubject.Text;
mail.Body = txtMailBody.Text;

try
{
    foreach (ListItem user in lbSelectedUsr.Items)
    { 
        mail.To.Add(new MailAddress(user.email));
    }

    SmtpClient mailClient = new SmtpClient("smtp.host.com");
    mailClient.Send(mail);

    lblResultOK.Visible = true;
}
catch(Exception ex)
{
    lblResultOK.Visible = true;
}

请注意,为了样本,SMTP是假的。

我尝试使用无效的SMTP并且它给了我不同的错误,所以SMTP似乎没问题, 我也试图把凭证,同样的错误。有关正在发生的事情的暗示吗?

5 个答案:

答案 0 :(得分:0)

尝试通过谷歌smtp发送,如果每个人都可以,那么将其更改为您的smtp服务器信息。如果您这样做,如果您的问题仍然存在,那么您必须检查您的smtp服务器。

答案 1 :(得分:0)

我在Web.Config文件中正确设置了SMTP配置吗? 我想说尝试通过host =“smtp.gmail.com”

发送一封示例电子邮件
<system.net>
<mailSettings>
  <smtp deliveryMethod="Network" from="emailAddress">
    <network host="smtp.gmail.com" port="587" userName="emailAddress" password="password" defaultCredentials="false"/>
  </smtp>
</mailSettings>

答案 2 :(得分:0)

服务器不接受来自运行您应用的计算机的中继。适当配置服务器,或在已配置为中继的计算机上运行代码(通常是域中的所有计算机;我认为您的计算机属于与SMTP服务器不同的域)。

答案 3 :(得分:0)

Below code must be placed in web.config. The attention point is defaultCredentials="false"

<system.net>
<mailSettings>
  <smtp from="aaa@yourdomain.com">
    <network host="mail.yourdomain.com" userName="aaa@yourdomain.com" password="your password" port="587" defaultCredentials="false"/>
  </smtp>
</mailSettings>

答案 4 :(得分:-1)

MailMessage mail = new MailMessage();
mail.From = new MailAddress(CurrentUser.email);
mail.Subject = txtSubject.Text;
mail.Body = txtMailBody.Text;

try
{
    foreach (ListItem user in lbSelectedUsr.Items)
    { 
        mail.To.Add(new MailAddress(user.email));
    }

    SmtpClient mailClient = new SmtpClient("smtp.host.com");
    mailClient.EnableSsl = true
    mailClient.Send(mail);

    lblResultOK.Visible = true;
}
catch(Exception ex)
{
    lblResultKO.Visible = true;
}