System.Net.Mail.SmtpException-SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应

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

我需要从我的 C# 控制台应用程序通过电子邮件发送报告,但是当调用 smtp 客户端发送函数时,我收到以下异常。

System.Net.Mail.SmtpException:“发送邮件失败。” SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机未能响应而建立的连接失败。

下面是我在应用程序中用于发送电子邮件的代码。

Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword) 
 using (var message = new MailMessage(fromAddress, toAddress)
 {
     Subject = subject,
     Body = body
 })
 {
     smtp.Send(message);
 };

请帮我找到问题并发送电子邮件。

c# selenium-webdriver console-application smtpclient
1个回答
0
投票

我认为您在帖子中遗漏了一些代码。您的代码永远不会显示您使用 SMTP。

var fromAddress = new MailAddress("[email protected]", "TestFrom");
var toAddress = new MailAddress("[email protected]", "TestTo");
var host = "smtp.gmail.com";
var port = 587;
var enableSsl = true;
var deliveryMethod = SmtpDeliveryMethod.Network;
var useDefaultCredentials = false;
var credentials = new NetworkCredential(fromAddress.Address, fromPassword)

using (MailMessage message = new MailMessage(fromAddress, toAddress))
{
    message.Subject = "TestSubject";
    message.Body = "TestBody";

    using (SmtpClient mailClient = new SmtpClient(host, port))
    {
        mailClient.EnableSsl = enableSsl;
        mailClient.Credentials = credentials;
        mailClient.Send(message);
    }                               
} 

将邮件客户端添加到主机/端口后,它应该可以工作。如果您仍然遇到问题,可以尝试将端口更改为 25 或 465,默认情况下支持它们。

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