smtp 客户端抛出错误消息操作已超时

问题描述 投票:0回答:1

我正在使用 SmtpClient 和 Office365 邮件服务器来发送电子邮件。但每次我尝试 smtpclient.Send(msg) 时,它都会抛出“操作已超时”smtpException。我已经尝试了所有早期的选项,例如将端口更改为 587 并增加超时值,但没有任何效果。谁能帮我吗。下面是我的源代码。

    using (MailMessage msg = new MailMessage
    {                    
        From = new MailAddress("[email protected]"),
        Subject = this.Subject,
        Body = this.Body,
        IsBodyHtml = true
    })
    {
        msg.To.Add(new MailAddress("[email protected]"));
        using (SmtpClient client = new SmtpClient
        {
            Host = "smtp.office365.com",
            DeliveryMethod = SmtpDeliveryMethod.Network,
            EnableSsl = true,
            UseDefaultCredentials = false,                        
            Credentials = new System.Net.NetworkCredential("username", "password"),
            Port = 587
        })
        {
            try
            {
                client.TargetName = "STARTTLS/smtp.office365.com";
                client.Send(msg);
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
c# office365api smtpclient
1个回答
0
投票

基本上,当您无法连接到 SMTP 服务器时,就会发生此问题,这就是发生超时的原因。您收到此消息是因为超过了默认的 Timeout 值 100 秒。

可能有几个问题会导致此问题发生,即错误的 SMTP 地址、SMTP 拒绝、端口设置、SSL 配置等,您需要修复这些问题。

© www.soinside.com 2019 - 2024. All rights reserved.