2015-10-31 3 views
1

Я пытаюсь отправить электронное письмо из своего приложения в форме окна. Я видел много подобных сообщений, но никто не работает. Но когда я изменяю свои настройки в gmail, чтобы использовать менее безопасные приложения, код работает. Но я не хочу, чтобы моя учетная запись была уязвимой для этого приложения. Вот код и ошибка, которые я получаю, если не разрешу менее безопасные приложения.Отправка почты из приложения C#

MailMessage mail = new MailMessage("[email protected]", "[email protected]", "Test Automation", "Did you receive this?"); 
SmtpClient client = new SmtpClient("smtp.gmail.com"); 
client.Port = 587; 
client.Credentials = new NetworkCredential("[email protected]", "password"); 
client.EnableSsl = true; 
client.Send(mail); 
MessageBox.Show("Mail Sent", "success"); 

Необработанное исключение типа «System.Net.Mail.SmtpException» произошло в System.dll

Дополнительная информация: Сервер SMTP требует защищенного соединения или клиент не прошел проверку подлинности , Ответ сервера: 5.5.1 Требуется аутентификация.

Пожалуйста, помогите!

P.S. : Я создал учетную запись outlook, используя мой gmail, и когда я запустил сервер oulook и учетные данные, код работает. Так это проблема с новыми изменениями безопасности gmail? Другие подобные вопросы решают их проблемы, но я все время испытываю те же ошибки, пробовав почти все решения.

+0

Возможная дубликация [Ошибка Gmail: для SMTP-сервера требуется безопасное соединение или клиент не прошел аутентификацию. Ответ сервера: 5.5.1 Требуется аутентификация] (http://stackoverflow.com/questions/20906077/gmail-error-the-smtp-server-requires-a-secure-connection-or-the-client-was- не) – hrust

+0

Возможный дубликат [Отправка электронной почты через SMTP-сервер Gmail с помощью C#] (http://stackoverflow.com/questions/704636/sending-email-through-gmail-smtp-server-with-c-sharp) – MethodMan

+0

@Synaps нет, это не то же самое. и я пробовал оба этапа, не работал – Nil

ответ

1

Если вы не имеете 2 фактора

Включить "Меньше Безопасные приложения"

https://www.google.com/settings/security/lesssecureapps

Если у вас есть 2 фактора аутентификации

Вы можете сделать a «Пароль приложения». Перейдите к разделу ниже и добавьте настраиваемое приложение (просто напишите любое имя, которое вы хотите, имя не важно, просто используется для вашей собственной «бухгалтерской книги»), затем используйте этот пароль в качестве пароля.

client.Credentials = new NetworkCredential("[email protected]", "Generated Password");

https://security.google.com/settings/u/1/security/apppasswords

ПРИМЕЧАНИЕ: Если вы получаете "Заходящее вы ищете не доступен для вашей учетной записи" затем использовать "менее безопасное приложение"

+0

Сделал это .. Не работает .. Также попытался добавить ServerCertificateValidationCallback. Это тоже не помогло. – Nil

+0

добавил что-то еще, что может это сделать, im просто gueassing здесь, вы пробовали информацию отправителя в web.config? (просто идея) –

+0

Это приложение winform. У меня нет файла web.config. – Nil

Смежные вопросы