【问题标题】:Sending automated email using company email address使用公司电子邮件地址发送自动电子邮件
【发布时间】:2020-05-08 00:17:08
【问题描述】:

我有一种方法可以自动将电子邮件发送到我们公司的分发列表,我的公司电子邮件地址作为发件人。这听起来很简单。但是,每次尝试执行该方法时,我都会不断收到异常。我也在我的个人 office365 帐户上尝试过,效果很好,我只是在使用公司电子邮件时才遇到这个问题。

抛出异常:System.dll 中的“System.Net.Mail.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 但仍然是同样的问题。

【问题讨论】:

  • 你可以试试465作为端口号
  • @Aytekin 抱歉也没有用:(
  • 能否添加异常的完整堆栈跟踪
  • @KentAbrio 您可以分享发送给贵公司时的例外情况吗?我能想到的唯一一件事是 Outlook/Hotmail 服务器不接受您的公司电子邮件,因为它可能未配置为 Microsoft 服务器标准。有很多参数可以检查您的电子邮件是否设置正确,让我知道给出更公式化的答案。
  • 为什么不使用 Outlook 自动电子邮件系统或添加插件?

标签: c# selenium selenium-webdriver smtp


【解决方案1】:

尝试删除此行:

smtp.EnableSsl = true;

并添加这一行:

smtp.ConnectType = SmtpConnectType.ConnectSSLAuto;

另外下一个解决方案是尝试仅删除此行:

smtp.EnableSsl = true;

我很确定这会奏效。 请尝试使用不同的端口(25 或 587 或 465),否则根本没有端口。

【讨论】:

    【解决方案2】:

    个人 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

    参考:可以在POP and IMAP email settings for Outlook找到相关文档

    使用 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 Settings找到相关文档


    示例代码

    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);
    

    【讨论】:

    • @KentAbrio 查看更新后的答案。我添加了一个示例代码 sn-p。
    猜你喜欢
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 2016-01-21
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多