Little@Knight Ответов: 1

Как я могу отправить электронное письмо на C#?


MailMessage mail = new MailMessage();
     mail.From = new MailAddress("from@gmail.com");
     mail.To.Add("to@gmail.com");
     mail.Subject = "Hello World";
     mail.Body = "<h1>Hello</h1>";
     mail.IsBodyHtml = true;
     mail.Attachments.Add(new Attachment("C:\\report.txt"));

     using (SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587))
     {
         smtp.Credentials = new System.Net.NetworkCredential("from@gmail.com", "password");
         smtp.EnableSsl = true;
         smtp.Send(mail);
         MessageBox.Show("Message sent");
     }


Что я уже пробовал:

Приведенный выше код прекрасно работал на моем собственном ноутбуке, но когда я использовал его в сетевом ПК (как простой пользователь, а не администратор),
Я столкнулся с этой ошибкой
ystem.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 64.233.162.109:587

F-ES Sitecore

Это сетевая проблема, возможно, этот порт заблокирован на вашем брандмауэре. Google сообщение об ошибке для возможных решений, отправка электронной почты через gmail является одним из наиболее часто задаваемых вопросов, каждая проблема уже была решена много раз, если вы google.

1 Ответов

Рейтинг:
5

Afzaal Ahmad Zeeshan

Ваш код выглядит нормально для меня, и он должен отправить электронное письмо (и, конечно же, должен подключиться к серверу), вы пробовали подключиться через TCP-порт по умолчанию для SMTP-связи? Это 25, подумайте о том, чтобы попробовать этот вариант,

using (SmtpClient smtp = new SmtpClient("smtp.gmail.com", 25))
Кроме этого, только несколько вещей, чтобы рассмотреть:

1) включен ли SMTP в настройках gmail?
2) брандмауэр блокирует вашу связь с этим IP-адресом/портом из вашего приложения. Это действительно может иметь большое значение.
3) разрешает ли Google вашей учетной записи общаться, иногда я также обнаруживаю, что Google не разрешает определенным приложениям использовать SMTP-сервисы.

Кроме этого, есть еще очень мало того, что мы можем рассмотреть. Еще одна вещь, пожалуйста, попробуйте подключиться к Outlook или Yahoo! счета и посмотреть, работают ли они — код выглядит нормально.

Отправка электронных писем через .NET framework и общие проблемы-использование кода C# [^].