4

我一直在尝试制作一个简单的电子邮件发送应用程序,但我被这个错误阻止了,我似乎找不到任何有这个问题的人(虽然有点不知道要搜索什么)

所以当我尝试发送我的电子邮件时,我遇到了这个错误,它只是用我的 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 似乎没问题,我也尝试输入凭据,同样的错误。关于发生了什么的任何提示?

4

5 回答 5

1

我在 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>

于 2012-08-08T14:26:07.770 回答
1

下面的代码必须放在 web.config 中。注意点是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>

于 2015-11-12T12:13:25.277 回答
0

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

于 2013-02-19T14:13:38.453 回答
0

尝试通过 google smtp 发送,如果每个都正常,则将其更改为您的 smtp 服务器信息。如果您这样做并且如果您的问题仍然存在,那么您必须检查您的 smtp 服务器。

于 2012-08-08T14:10:06.377 回答
0
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;
}
于 2014-11-21T11:57:50.953 回答