вы уверены, что:
1) указали верный порт
smtp принимающей(к какой подключаетесь) стороны? (точно 587 ??? не всегда используется 587 для smtp)
2) указали верный адрес почты?
3) верный логин и пароль?
вот рабочий код:
class Program
{
static void Main(string[] args)
{
// отправитель - устанавливаем адрес и отображаемое в письме имя
MailAddress from = new MailAddress("somemail@gmail.com", "Tom");
// кому отправляем
MailAddress to = new MailAddress("somemail@yandex.ru");
// создаем объект сообщения
MailMessage m = new MailMessage(from, to);
// тема письма
m.Subject = "Тест";
// текст письма
m.Body = "<h2>Письмо-тест работы smtp-клиента</h2>";
// письмо представляет код html
m.IsBodyHtml = true;
// адрес smtp-сервера и порт, с которого будем отправлять письмо
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
// логин и пароль
smtp.Credentials = new NetworkCredential("somemail@gmail.com", "mypassword");
smtp.EnableSsl = true;
smtp.Send(m);
Console.Read();
}
}
вот асинхронный код:
class Program
{
static void Main(string[] args)
{
SendEmailAsync().GetAwaiter();
Console.Read();
}
private static async Task SendEmailAsync()
{
MailAddress from = new MailAddress("somemail@gmail.com", "Tom");
MailAddress to = new MailAddress("somemail@yandex.ru");
MailMessage m = new MailMessage(from, to);
m.Subject = "Тест";
m.Body = "Письмо-тест 2 работы smtp-клиента";
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.Credentials = new NetworkCredential("somemail@gmail.com", "mypassword");
smtp.EnableSsl = true;
await smtp.SendMailAsync(m);
Console.WriteLine("Письмо отправлено");
}
}
если через это не отправится - значит проблемы с указанными данными: порт, емеил, логи и пароль...