Отправка электронной почты анонимно через smtp

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

Если для свойства UseDefaultCredentials задано значение false, а свойство Credentials не задано, почта отправляется на сервер анонимно.

Но когда я устанавливаю для UseDefaultCredentials значение false, на мою электронную почту ничего не доставляется:

        MailMessage mail = new MailMessage("[email protected]", "[email protected]");
        SmtpClient client = new SmtpClient();
        client.Port = 25;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Host = "smtp.google.com";
        mail.Subject = "this is a test email.";
        mail.Body = "this is my test email body";
        client.Send(mail)

Мой вопрос в том, связана ли эта проблема с Gmail или что-то не так с тем, как я это делаю.


person Transcendent    schedule 03.01.2014    source источник
comment
Вы пытались использовать Wireshark для наблюдения за ответом SMTP-сервера?   -  person    schedule 03.01.2014
comment
Нет, не могли бы вы рассказать больше о Wireshark.   -  person Transcendent    schedule 03.01.2014
comment
Казалось бы (как я и ожидал), что smtp.google.com не отправляет электронные письма от имени анонимных пользователей. Если у вас есть SMTP-сервер, поддерживающий анонимных пользователей, это сработает.   -  person Servy    schedule 03.01.2014
comment
@Plexus — загрузите и установите его здесь: wireshark.org   -  person Spencer Ruport    schedule 03.01.2014
comment
@SpencerRuport: спасибо за ссылку   -  person Transcendent    schedule 03.01.2014


Ответы (1)


Без более подробной информации трудно понять, в чем проблема. Будет ли это работать, если вы установите для UseDefaultCredentials значение true?

Стандартные проблемы, на которые следует обратить внимание при работе с SMTP:

  • Большинство интернет-провайдеров блокируют порт 25, поэтому вы не можете использовать SMTP без SSL/TLS, кроме как для локального сервера или в особых случаях.

  • Насколько я знаю, SMTP GMail принимает только аутентифицированный логин для передачи почты.

По моему опыту, использование аутентифицированной учетной записи gmail (с паролем) и TLS (зашифрованное) соединение (не порт 25) отлично работает практически из любого места, но, вероятно, не будет желательным для вашего приложения, поскольку у вас нет учетных данных пользователя gmail .

Стандартный альтернативный подход, который вы можете рассмотреть, если все это доставляет много хлопот, заключается в поддержке вашего собственного процесса отправки отзывов на основе форм на вашем собственном веб-сайте, в отличие от общей электронной почты.

person GregD    schedule 03.01.2014