我需要从我的 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);
};
请帮我找到问题并发送电子邮件。
我认为您在帖子中遗漏了一些代码。您的代码永远不会显示您使用 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,默认情况下支持它们。