好的!我已经想通了。
哇,我花了很多时间来尝试启动并运行它。我有带有 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@ 电子邮件列为非垃圾邮件,但现在它已按预期到达。请记住,您每天只有有限数量的中继电子邮件,因此请明智地使用它们!希望这可以帮助!