Я пытаюсь отправить электронную почту в свое приложение 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" }
Спасибо за вашу помощь
попытайтесь проверить свой код на другой учетной записи gmail, gmail может реагировать на ваши действия с smtp и ограничивать подключения. – Vladimir
Иногда ошибка 10061 вызвана либо брандмауэром, либо антивирусом на локальном компьютере или сетевом подключении. У меня была проблема со школьной сетью, которая не могла отправлять электронные письма, но дома я мог. –
Ваше первое соединение с TcpClient довольно бесполезно, почему бы вам просто не бросить его? Я не знаю политики Google для нескольких активных подключений с одного и того же IP-адреса. Предполагая, что ваше соединение TcpClient не сработает, вы должны проверить, включено ли ваше приложение в список незащищенных безопасных приложений для GMail. Также проверьте локальные проблемы, локальные/сетевые политики домена могут блокировать ваше соединение. –