Исключение SMTP при попытке отправить почту в C # - PullRequest
2 голосов
/ 07 сентября 2011

Я использую следующий очень простой код и получаю System.Net.Mail.SmtpException ошибку при отправке почты.Это мой код:

static void main(string[] args)
{
    MailAddress from = new MailAddress("MyEmail@gmail.com", "Mr. Test");
    MailAddress to = new MailAddress("AnotherEmail@gmail.com", "mr. man");
    MailMessage msg = new MailMessage(from, to);
    msg.Subject = "email";
    msg.Body = "This is email.";
    SmtpClient client = new SmtpClient("smtp.gmail.com");

    client.Send(msg);
}

Я никогда раньше не пытался программно отправлять электронную почту, поэтому я благодарен за помощь.

Ответы [ 3 ]

5 голосов
/ 07 сентября 2011

Вам не хватает учетных данных и отправка в виде TLS (защищенное соединение):

Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"), 
EnableSsl = true 

Подробнее здесь: Отправка электронной почты через SMTP-сервер Gmail с помощью C #

2 голосов
/ 07 сентября 2011

Google не хочет, чтобы вы использовали порт 25, они хотят, чтобы вы использовали 587 (ssl) или 467. Они также требуют, чтобы вы аутентифицировались при отправке почты.

2 голосов
/ 07 сентября 2011

Первое, что я вижу неправильно с указанным кодом, это то, что для проверки с помощью сервера smtp не задано имя пользователя / пароль.

Кроме того, чтобы лучше понять, что именно вызывает SmtpException, поймайтеисключение в вашем отладчике и посмотрите на детали исключения.Делая это, я получил хорошее объяснение того, что вызывает ошибки SMTP.

Вы можете попробовать следовать этим инструкциям для отправки почты с использованием SMTP через gmail.http://blogs.msdn.com/b/mariya/archive/2006/06/15/633007.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...