Я хочу отправить электронное письмо из своего приложения, и я написал следующий код для отправки почты
MailMessage msg = new MailMessage();
msg.From = new MailAddress("mymailid");
msg.To.Add("receipientid");
msg.Subject = "test";
msg.Body = "Test Content";
msg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("mymailid", "mypassword", "smtp.gmail.com");
client.Host = "smtp.gmail.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.UseDefaultCredentials = true;
client.Send(msg);
Я запускаю его на локальном хосте, поэтому какую ошибку я делаю, чтобы отправить его.
Когда я отправляю кнопку, появляется сообщение об ошибке, например
SMTP-серверу требуется безопасное соединение, иначе клиент не прошел аутентификацию. Ответ сервера: 5.5.1 Требуется аутентификация.
Код в файле Web.config
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="smtpServer" value="smtp.gmail.com" />
<add key="EnableSsl" value = "true"/>
<add key="smtpPort" value="587" />
<add key="smtpUser" value="sender@gmail.com" />
<add key="smtpPass" value="mypassword" />
<add key="adminEmail" value="sender@gmail.com" />
</appSettings>
<system.net>
<mailSettings>
<smtp from="sender@gmail.com">
<network host="smtp.gmail.com" password="mypassword" port="587" userName="sender@gmail.com" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
что мне делать, чтобы исправить эту ошибку и отправить почту ??
Ответы:
Сначала проверьте наличие проблем, связанных с безопасностью Gmail. Возможно, вы включили двойную аутентификацию в Gmail. Также проверьте свой почтовый ящик Gmail, если вы получаете какие-либо предупреждения системы безопасности. В таких случаях проверьте другой ответ @mjb, как показано ниже
Ниже приведены общие сведения, которые я всегда сначала проверяю на наличие таких проблем.
установите значение false.
Обратите внимание на ответ @Joe King - вы должны установить client.UseDefaultCredentials, прежде чем устанавливать client.Credentials
источник
У меня та же проблема.
Я нашел это решение:
Google может блокировать попытки входа в систему из некоторых приложений или устройств, которые не используют современные стандарты безопасности. Поскольку эти приложения и устройства легче взломать, их блокировка помогает защитить вашу учетную запись.
Вот некоторые примеры приложений, не поддерживающих последние стандарты безопасности:
Поэтому вам необходимо включить менее безопасный вход (или менее безопасный доступ к приложениям ) в своей учетной записи Google.
После входа в учетную запись Google перейдите по ссылке:
https://www.google.com/settings/security/lesssecureapps
или
https://myaccount.google.com/lesssecureapps
В C # вы можете использовать следующий код:
-------------------
Информация, предоставленная Майклом Фрейджеймом в области комментариев ниже:
Аналогичный ответ со скриншотами https://stackoverflow.com/a/32457468/52277
источник
Убедитесь, что вы установили
SmtpClient.Credentials
после звонкаSmtpClient.UseDefaultCredentials = false
.Порядок важен, так как настройка
SmtpClient.UseDefaultCredentials = false
будет сброшенаSmtpClient.Credentials
на ноль.источник
Я искал и пробовал разные вещи часами .. Подводя итог, мне пришлось принять во внимание следующие моменты:
smtp.gmail.com
вместоsmtp.google.com
client.UseDefaultCredentials = false;
перед настройкой учетных данныхclient.EnableSsl = true;
Если эти шаги не помогли, проверьте этот ответ .
Возможно, вы тоже найдете что-то полезное в этом FAQ по System.Net.Mail .
источник
Попробуйте войти в свою учетную запись Gmail. он блокируется, если вы отправляете электронные письма с помощью gmail SMTP. Я не знаю лимита писем, которые вы можете отправить, прежде чем он будет заблокирован, но если вы войдете в систему один раз, он снова будет работать из кода. убедитесь, что ваши настройки webconfig в порядке.
источник
Попробуйте так, я только что внес небольшие изменения:
Также покажите файл app.config, если у вас там есть настройки почты.
источник
Включите менее безопасное приложение по этой ссылке и бум ...
источник
попробуйте разрешить менее безопасный доступ к приложениям.
Здесь вы можете включить менее безопасное приложение после входа в систему с помощью Gmail.
https://myaccount.google.com/lesssecureapps
Спасибо.
источник
Я столкнулся с той же проблемой, даже если установил для UseDefaultCredentials значение false. Позже я обнаружил, что основная причина в том, что я включил «двухэтапную аутентификацию» в своей учетной записи. После того, как я его выключил, проблема исчезла.
источник
Убедитесь, что разрешен доступ к менее безопасному приложению.
источник
Ниже мой код. У меня была такая же ошибка, но проблема заключалась в том, что я ввел неправильный пароль. Приведенный ниже код будет работать отлично .. попробуйте
Вы можете указать это в разделе "Отправка почты"
источник
Если это новая учетная запись Google, вам необходимо отправить электронное письмо (первое) через обычный пользовательский интерфейс. После этого вы можете использовать свое приложение / робота для отправки сообщений.
источник
Вам следует подумать об указании данных конфигурации SMTP в файле конфигурации и не перезаписывать их в коде - см. Данные конфигурации SMTP на http://www.systemnetmail.com/faq/4.1.aspx
источник
Я несколько раз сталкивался с одной и той же проблемой. После включения параметра менее безопасного приложения проблема решена. Включите менее безопасное приложение отсюда: https://myaccount.google.com/lesssecureapps
надеюсь, это поможет.
источник
Если вы находитесь в тестовой среде и не хотите устанавливать параметры безопасности, вам необходимо разрешить менее безопасные приложения через. эта ссылка в Gmail.
https://myaccount.google.com/lesssecureapps
источник
некоторые серверы smtp (безопасные) требуют, чтобы вы указали и имя пользователя, и адрес электронной почты, если его gmail, то, скорее всего, это проблема «менее безопасного входа», которую вам нужно решить, в противном случае вы можете попробовать:
обратите внимание, что электронная почта от и имя пользователя отличаются, в отличие от некоторых реализаций, в которых они называются одинаковыми.
вызвать этот метод можно так:
источник
Если после включения менее безопасного варианта и попытки других решений вы по-прежнему сталкиваетесь с той же проблемой, попробуйте использовать эту перегрузку:
вместо того:
источник
Сегодня утром я создал подписку Microsoft 365 Developer (E5) и использовал ее для отправки тестового электронного письма со следующими настройками.
Сначала это не сработало, так как я продолжал получать это сообщение об ошибке с исключением, созданным этим кодом. Затем я потратил около 4+ часов, играя с настройками центра администрирования Microsoft 365 и читая статьи, чтобы разобраться в проблеме. В конце концов, я сменил пароль в центре администрирования Microsoft 365, и это сработало отлично. Поэтому стоит попробовать изменить пароль, когда вы получите это сообщение, прежде чем думать о каком-либо предварительном решении.
Обратите внимание, что пароль был недействительным, поскольку я без проблем вошел в свою учетную запись Microsoft 365. однако смена пароля решила проблему.
источник
Я также столкнулся с такой проблемой, как «SMTP-серверу требуется безопасное соединение или клиент не прошел аутентификацию. Ответ сервера был: 5.5.0 Требуется аутентификация », затем просмотрел столько интернет-материалов, но мне это не помогло полностью. Как я решил это вроде
step1: smtp.gmail.com - это сервер gmail, поэтому перейдите в настройки gmail своей учетной записи -> нажмите «Просмотреть все настройки» -> «Пересылка и IMAP / POP» -> проверьте, включены ли pop и imap, если не включить -> Сохранить изменения. step2 - щелкните изображение своего профиля gmail-> нажмите «Управление учетной записью Google» -> перейдите на вкладку «Безопасность» -> проверьте доступ к менее безопасным приложениям (эта опция будет доступна, если вы не выбрали двухэтапную проверку) -> по умолчанию Google установит для него отключение, включите использование вашего реального пароля Gmail для отправки электронной почты. Примечание: -Включение доступа к Gmail для менее безопасных приложений может быть опасно для вас, поэтому я не рекомендую это
Шаг 3: -если в вашей учетной записи включена двухэтапная проверка или вы хотите использовать пароль, отличный от вашего gmail. Настоящий пароль с использованием специального пароля приложения, попробуйте следующее: - нажмите на изображение своего профиля gmail -> нажмите Управление учетной записью google -> перейдите в безопасность вкладка-> поиск ПАРОЛЯ ПРИЛОЖЕНИЯ-> выберите любое указанное имя приложения-> выберите любое имя устройства-> нажмите генерировать-> скопируйте 16-значный пароль и вставьте его в свое приложение, где вы должны ввести пароль Gmail вместо ваш настоящий пароль Gmail.
источник