我无法理解为什么这段代码不起作用。
我有这个错误:
System.IO.IOException:连接已关闭 在System.Net.Mail.SmtpClient.Read()
System.IO.IOException:连接已关闭 在System.Net.Mail.SmtpClient.SendCore
System.IO.IOException:连接已关闭 在System.Net.Mail.SmtpClient.SendInternal
System.IO.IOException:连接已关闭 在System.Net.Mail.SmtpClient.Send
static void Main(string[] args)
{
var smtp = new SmtpClient
{
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
EnableSsl = true,
Host = "smtp.gmail.com",
//465 SSL se uso 25 solo ad utenti google mando
Port = 465,
Credentials = new NetworkCredential("id", "password"),
};
Console.WriteLine("Mail From: ");
var fromAddress = new MailAddress(Console.ReadLine());
Console.WriteLine("Mail To: ");
var toAddress = new MailAddress(Console.ReadLine());
Console.WriteLine("Subject: ");
string subject = Console.ReadLine();
Console.WriteLine("Body: ");
string body = Console.ReadLine();
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
try
{
smtp.Send(message);
}
catch(Exception ex)
{
Console.WriteLine("Unable to send message due to the following reason: " + ex.ToString());
}
}
我该如何解决这些问题?
答案 0 :(得分:0)
尝试端口587而不是465.端口465在技术上已弃用。
答案 1 :(得分:0)
:
即使我在587上设置端口,我也有同样的错误。此外,Gmail告诉我有人试图访问我的帐户
如果您使用端口587就是这种情况,那么您应该在gmail设置中允许安全性较低的应用程序。如果您使用双因素身份验证,则还需要添加应用程序密码并使用该密码。