2016-11-28 7 views
2

Я пытаюсь отправить электронную почту в свое приложение C# с помощью smtp.gmail.com. Мой код работал нормально до последней недели, и вдруг я получаю сообщение об ошибке. Я разрешил менее безопасное приложение в моей учетной записи gmail, включен IMAP, ничего не изменилось.Отправка электронной почты через C# с использованием gmail

Первая проверка работает отлично, и я получаю «Port open».

Вот код:

using (TcpClient tcpClient = new TcpClient()) 
    { 
     try 
     { 
      tcpClient.Connect("smtp.gmail.com", 587); 
      MessageBox.Show("Port open"); 
     } 
     catch (Exception) 
     { 
      MessageBox.Show("Port closed"); 
     } 
    } 

    SmtpClient smtp = new SmtpClient 
    { 
     Host = "smtp.gmail.com", 
     Port = 587, 
     EnableSsl = true, 
     UseDefaultCredentials = false, 
     DeliveryMethod = SmtpDeliveryMethod.Network, 
     Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword") 
    }; 

    using (var message = new MailMessage("[email protected]", "[email protected]") 
    { 
     Subject = "Test", 
     Body = "Hi" 
    }) 
    { 
     smtp.Send(message); 
    } 

} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 

Я получаю ошибку:

«Услуга недоступна, закрытие канала передачи
Реакция сервера была:. Не удается подключиться к SMTP-серверу 2a00: 1450 : 400c: c01 :: 6с (2a00: 1450: 400c: c01 :: 6с: 587), подключение ошибка 10061" }

Спасибо за вашу помощь

+1

попытайтесь проверить свой код на другой учетной записи gmail, gmail может реагировать на ваши действия с smtp и ограничивать подключения. – Vladimir

+0

Иногда ошибка 10061 вызвана либо брандмауэром, либо антивирусом на локальном компьютере или сетевом подключении. У меня была проблема со школьной сетью, которая не могла отправлять электронные письма, но дома я мог. –

+0

Ваше первое соединение с TcpClient довольно бесполезно, почему бы вам просто не бросить его? Я не знаю политики Google для нескольких активных подключений с одного и того же IP-адреса. Предполагая, что ваше соединение TcpClient не сработает, вы должны проверить, включено ли ваше приложение в список незащищенных безопасных приложений для GMail. Также проверьте локальные проблемы, локальные/сетевые политики домена могут блокировать ваше соединение. –

ответ

0

Я думаю, вам нужно проверить разрешения брандмауэра ОС. Похоже, вы не можете прослушать порт 587.

Можете ли вы отправить свой netstat-выход?

Смежные вопросы