1

我究竟做错了什么?我正在尝试使用带有 GoDaddy 虚拟主机的 c# 发送电子邮件。

SmtpClient client = new SmtpClient("relay-hosting.secureserver.net", 465);
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("emailGODADDY", "password");

MailMessage message = new MailMessage("emailGODADDY", "otherEmail");
message.Subject = txtSubject.Text;
message.Body = txtContent.Value;

client.Send(message);
4

4 回答 4

8

使用 Go Daddy 的共享主机帐户,您需要在端口 25 而不是端口 465 上发送电子邮件。此外,当您从主机帐户发送电子邮件时,relay-hosting.secureserver.net 不需要您使用用户名和密码进行身份验证。

于 2012-06-14T20:35:18.517 回答
1

每个 smtp 服务器都有自己的凭据,与其他的不同。

根据 microsoft client.UseDefaultCredentials 不应尽可能使用。

您可以尝试省略这行代码......

client.UseDefaultCredentials = false;

如果这不起作用,请尝试

client.EnableSsl = false;

因为有些服务器不使用安全连接。

您也可以使用此代码进行检查

client.DeliveryMethod = SmtpDeliveryMethod.Network;
于 2012-06-14T01:54:49.030 回答
1

只需在下面注释掉它就可以正常工作

//client.EnableSsl = false;

也使用端口 25。

于 2018-11-04T07:21:49.647 回答
1

好的!我已经想通了。

哇,我花了很多时间来尝试启动并运行它。我有带有 Plesk(共享)的经济型 Windows 主机,只有一个 Office365 电子邮件帐户。我了解到您无法创建连接到 smtp.office365.com 的 SMTP 客户端的艰难方法,因为此共享主机包的端口 587 被阻止。TXT 记录、SPF 记录也无济于事。浪费了很多时间。

但是,唉,这正是对我有用的方法。我在 web.config 中添加了以下内容,但我认为您可以将相同的信息构建到您的 SMTP 客户端对象中。不过,这工作正常。任何。

<system.net>
  <mailSettings>
    <smtp from="noreply@MyDomain.com">        
      <network host="relay-hosting.secureserver.net" port="25" />        
    </smtp>
  </mailSettings>
</system.net>

在后面的代码中,我确保 MailMessage 中使用的 FROM 地址与 web.config 中的 FROM 值完全匹配。这真的重要吗?不确定,但它们匹配,并且有效。任何。

FROM 地址 (noreply@) 不作为电子邮件存在,也不是别名等。它只是来自托管网站的同一个域。

我的 TO 地址是从 web.config (AppSettings["SendTo"]) 中检索的。这是我在此域中的真实电子邮件地址(我的 Office365 电子邮件地址)。我不确定您是否可以向域外的内容发送电子邮件,因为我没有测试过。

...显然MailMessage(msg)不完整...

msg.To.Add(new MailAddress(ConfigurationManager.AppSettings["SendTo"].ToString()));
msg.From = new MailAddress("noreply@MyDomain.com");


var smtp = new SmtpClient 
{       
 // nothing is needed here  
};
smtp.Send(msg);

创建您的客户并发送消息!

耶!我不得不将 noreply@ 电子邮件列为非垃圾邮件,但现在它已按预期到达。请记住,您每天只有有限数量的中继电子邮件,因此请明智地使用它们!希望这可以帮助!

于 2020-03-13T03:56:51.227 回答