smtpclient.send 在尝试通过 Office 365 发送电子邮件时挂起

smtpclient.send hangs while trying to send email via office 365

我正在使用此代码通过 Office 365 交换服务器发送电子邮件。

var server = "smtp.office365.com";
            var port = 587;
            var username = "user@domain.com";
            var password = "password";

            var to = "test@domain.com";
            var subject = "test message";
            var body = "test message";

            var smtpClient = new SmtpClient(server, port)
            {
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(username, password),
                DeliveryMethod = SmtpDeliveryMethod.Network,
                EnableSsl = true
            };

            var messsage = new MailMessage(username, to, subject, body);

            try
            {
                smtpClient.Send(messsage);
                Console.WriteLine("Mail sent completed");

            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.ToString());
            }

我的代码只是挂在 smtpClient.Send(messsage);

我可以使用此帐户发送电子邮件。该帐户未启用 2FA。我也没有看到任何人有类似的问题。任何帮助将不胜感激。

谢谢 提克鲁

希望这可能有所帮助:

  1. 将 smtpClient 的超时设置为较低的值,然后看看是否出现超时,或者等待您超过 1 分钟?
smtpClient.Timeout = 100;
  1. 启动 Wireshark 以分析您网络中的 smtp 流量。看看服务器是否应答。
  2. 检查您机器的防火墙选项
  3. 检查那里的所有参数
  4. 使用相同的选项在机器上尝试另一个邮件客户端
  5. 可能有帮助的测试工具:https://testconnectivity.microsoft.com/tests/o365
  6. 尝试远程登录 https://docs.microsoft.com/en-us/Exchange/mail-flow/test-smtp-with-telnet?view=exchserver-2019

按照此过程启用 SMTP 身份验证后

https://docs.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission

我们能够解决问题

谢谢 提克鲁