客户电子邮件 - C#

时间:2016-09-27 12:17:57

标签: c# email smtpclient

我无法理解为什么这段代码不起作用。

我有这个错误:

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

我该如何解决这些问题?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

来自OP的评论

  

即使我在587上设置端口,我也有同样的错误。此外,Gmail告诉我有人试图访问我的帐户

如果您使用端口587就是这种情况,那么您应该在gmail设置中允许安全性较低的应用程序。如果您使用双因素身份验证,则还需要添加应用程序密码并使用该密码。