2014-01-03 5 views
1

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

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

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

 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 или есть что-то не так с тем, как я» m делать это.

+1

Вы пробовали использовать Wireshark для наблюдения за ответом SMTP-сервера? – Amy

+0

Нет, не могли бы вы объяснить больше о Wireshark. – Transcendent

+0

Казалось бы (как и следовало ожидать), что 'smtp.google.com' не отправляет электронные письма от имени анонимных пользователей. Если у вас есть SMTP-сервер, который поддерживает анонимных пользователей, это сработает. – Servy

ответ

4

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

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

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

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

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

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