客户端电子邮件- c#

本文关键字:电子邮件 客户端 | 更新日期: 2023-09-27 18:09:06

我不明白为什么这段代码不工作。

我有这个错误:

  • 先。IOException:连接关闭at System.Net.Mail.SmtpClient.Read ()

  • 先。IOException:连接关闭在System.Net.Mail.SmtpClient.SendCore

  • 先。IOException:连接关闭在System.Net.Mail.SmtpClient.SendInternal

  • 先。IOException:连接关闭

        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());
            }
        }
    

我怎样才能解决这些问题?

客户端电子邮件- c#

尝试端口587而不是465。端口465在技术上已弃用

摘自OP的评论:

即使我将端口设置为587,也会出现相同的错误。另外,Gmail告诉我有人试图访问我的帐户

如果是这种情况,当你使用端口587,那么你应该允许不太安全的应用程序在你的gmail设置。如果您使用的是2因素身份验证,那么您还需要添加应用程序密码并使用该密码。