我有一个方法,基本上可以自动将电子邮件发送到我们公司的通讯组列表,并将我公司的电子邮件地址作为发件人。这听起来很简单;然而,每次尝试执行该方法时,我都会不断地得到一个异常。我也在我的个人office365帐户上尝试过,效果很好,我只有在使用公司电子邮件时才会遇到问题。
引发异常:"系统。网邮政System.dll中的SmtpException
这是我的smtp设置(我们使用outlook(。
SmtpClient smtp = new SmtpClient("smtp.live.com", 587);
smtp.Credentials = new NetworkCredential(fromEmail, Password);
smtp.EnableSsl = true;
smtp.Send(mail);
我想我应该使用我们自己的"smtp.live.com"版本,如果有的话,或者可能使用另一个端口?我尝试使用端口25,但仍然存在相同的问题。
尝试删除此行:
smtp.EnableSsl = true;
并添加此行:
smtp.ConnectType = SmtpConnectType.ConnectSSLAuto;
另外,下一个解决方案是尝试只删除这条线:
smtp.EnableSsl = true;
我非常确信这是可行的。请尝试使用不同的端口(25或587或465(,或者根本没有端口。
更多关于个人office365帐户和公司电子邮件(outlook(设置的详细信息,以及完整的错误堆栈,将有助于我们更好地分析问题。然而,这里有一些见解:
使用个人Office365帐户发送自动电子邮件
使用Microsoft 365发送自动电子邮件的SMTP设置如下:
- 服务器:smtp.office365.com
- 端口:587
- 加密:STARTTLS
使用公司电子邮件帐户发送自动电子邮件
如果您的组织使用Outlook.com/Hotmail.com/Live.com中的任何一个作为电子邮件提供商,则SMTP设置是相同的:
- 服务器:smtp.office365.com
- 端口:587
- 加密:STARTTLS
使用公司电子邮件帐户发送自动电子邮件
如果您的组织使用Outlook.com/Hotmail.com/Live.com中的任何一个作为电子邮件提供商,则SMTP设置是相同的:
- 服务器:smtp.office365.com
- 端口:587
- 加密:STARTTLS
参考:您可以在Outlook 的POP和IMAP电子邮件设置中找到相关文档
使用Windows Live Hotmail SMTP设置发送自动电子邮件
如果您打算使用Windows Live Hotmail SMTP,则设置为:
- Hotmail SMTP服务器:SMTP.live.com
- Hotmail SMTP用户名:完整的Windows Live Hotmail电子邮件地址(例如。KentAbrio@hotmail.com或KentAbrio@live.com)
- Hotmail SMTP密码:您的Windows Live Hotmail密码
- Hotmail SMTP端口:587
- 需要Hotmail SMTP TLS/SSL:是
参考:您可以在Windows Live Hotmail SMTP设置中找到相关文档
示例代码
SmtpClient client = new SmtpClient();
client.Port = 587;
client.Host = "smtp.office365.com";
client.EnableSsl = true;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(fromEmail, "Password");
MailMessage mm = new MailMessage("KentAbrio@hotmail.com", "KentAbrio@live.com", "test", "test");
mm.BodyEncoding = UTF8Encoding.UTF8;
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
client.Send(mm);