Я использую следующий код для отправки электронной почты. Код работает правильно на моей локальной машине. Но на производственном сервере я получаю сообщение об ошибке
var fromAddress = new MailAddress("mymailid@gmail.com");
var fromPassword = "xxxxxx";
var toAddress = new MailAddress("yourmailid@yourdoamain.com");
string subject = "subject";
string body = "body";
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
smtp.Send(message);
И на моем Gmail A / C я получил следующее письмо после того, как я запустил код с рабочего сервера
Здравствуй ,
Кто-то недавно использовал ваш пароль, чтобы попытаться войти в вашу учетную запись Google mymailid@gmail.com. Этот человек использовал приложение, такое как электронная почта, клиент или мобильное устройство.
Мы предотвратили попытку входа, если это был угонщик, пытающийся получить доступ к вашей учетной записи. Пожалуйста, просмотрите детали попытки входа в систему:
Пятница, 3 января 2014 г. 13:56:08:00 UTC IP-адрес: xxx.xx.xx.xxx (abcd.net.) Расположение: Филадельфия, Пенсильвания, Филадельфия, Пенсильвания, США.
Если вы не распознаете эту попытку входа, возможно, кто-то другой пытается получить доступ к вашей учетной записи. Вы должны войти в свою учетную запись и немедленно сбросить пароль.
Сброс пароля
Если это был вы, и у вас возникли проблемы с доступом к учетной записи, выполните действия по устранению неполадок, перечисленные на странице http://support.google.com/mail?p=client_login.
С уважением, команда Аккаунтов Google
Ответы:
Обычно это происходит при попытке входа в систему из другого часового пояса или компьютера с IP-адресом. Ваш рабочий сервер и используемый вами почтовый идентификатор находятся в разных часовых поясах. Выберите одно из этих двух решений:
1) Войдите на рабочий сервер через удаленный доступ и войдите в Gmail, указав свои учетные данные. Они попросят подтверждение, подтвердят его и выйдут.
Или 2) войдите в Gmail на свой локальный компьютер, перейдите по этой ссылке, выберите обзор этой активности и выполните соответствующие действия.
источник
При попытке отправить почту из кода и обнаружении ошибки «SMTP-серверу требуется безопасное соединение или клиент не прошел проверку подлинности. Ответ сервера был: 5.5.1 Требуется проверка подлинности», то ошибка может возникнуть из-за следующих случаев.
случай 1: когда пароль неверный
Случай 2: когда вы пытаетесь войти из какого-либо приложения
случай 3: когда вы пытаетесь войти из домена, отличного от вашего часового пояса / домена / компьютера (это имеет место в большинстве случаев при отправке почты из кода)
Есть решение для каждого
Решение для случая 1: введите правильный пароль.
Решение 1 для случая 2 : перейдите в настройки безопасности по следующей ссылке https://www.google.com/settings/security/lesssecureapps и включите менее безопасные приложения. Так что вы сможете войти из всех приложений.
Решение 2 для случая 2 : (см. https://stackoverflow.com/a/9572958/52277 ) включить двухфакторную аутентификацию (или двухэтапную проверку), а затем сгенерировать пароль для конкретного приложения. Используйте этот новый пароль для аутентификации через SMTP.
Решение 1 для случая 3: (Это может быть полезно), вам нужно проверить действие. но проверка активности не будет полезна из-за последних стандартов безопасности, ссылка не будет полезна. Так что попробуйте следующий случай.
Решение 2 для случая 3 : Если вы разместили свой код где-то на рабочем сервере и если у вас есть доступ к производственному серверу, тогда подключитесь к производственному серверу с помощью удаленного рабочего стола и попробуйте один раз войти в систему из браузера рабочего сервера. Это добавит исключение для входа в Google, и вам будет разрешено войти из кода.
Но что, если у вас нет доступа к производственному серверу. попробуйте решение 3
Решение 3 для случая 3: Вы должны включить логин из другого часового пояса / ip для вашей учетной записи Google.
Для этого перейдите по ссылке https://g.co/allowaccess и разрешите доступ, нажав кнопку «Продолжить».
И это все. Ну вот. Теперь вы сможете войти с любого компьютера и любого приложения в свою учетную запись Google.
источник
Это проблема безопасности, Gmail по умолчанию блокирует доступ к вашей учетной записи электронной почты из пользовательских приложений. Вы можете настроить его, чтобы принять логин из вашего приложения.
После входа в свою электронную почту, нажмите здесь
Это приведет вас к следующей странице
источник
Потратив пару часов сегодня, пытаясь найти здесь каждое решение, я все еще не смог обойти эту точную ошибку. Я использовал Gmail много раз таким образом, поэтому я знал, что это было что-то глупое, но я ничего не сделал, чтобы решить проблему. Я наконец наткнулся на решение в моем случае, поэтому думал, что поделюсь.
Во-первых, большинство из приведенных выше ответов также являются обязательными, но в моем случае это был простой вопрос упорядочения кода при создании
SmtpClient
класса.В этом первом фрагменте кода ниже обратите внимание, где находится
Credentials = creds
строка. Эта реализация сгенерирует ошибку, указанную в этом вопросе, даже если все остальное настроено правильно.Однако если переместить вызов установщика учетных данных вниз, электронное письмо будет отправлено без ошибок. Я не внес никаких изменений в окружающий код ... т.е. ... имя пользователя / пароль и т. Д. Ясно, что либо
EnableSSL, UseDefaultCredentials, or the DeliveryMethod
зависит от того,Credentials
что было установлено первым ... Я не проверял все, чтобы выяснить, какой это был хотя ,Надеюсь, что это поможет спасти кого-то еще от некоторых головных болей в будущем.
источник
UseDefaultCredentials
инкубаторе есть этот код:this.transport.Credentials = value ? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials : (ICredentialsByHost) null;
который переопределяетcredentials
устанавливаетсяCredentials
сеттера. Для меня это выглядит какSmtpClient
ошибкаВы должны включить «Разрешить менее безопасные приложения» здесь https://myaccount.google.com/lesssecureapps
источник
Привет, у меня была такая же проблема,
что я сделал, чтобы решить это. это включить менее безопасное приложение. после подключения к моей учетной записи Gmail. Я ввел эту ссылку: https://www.google.com/settings/security/lesssecureapps
Затем я включаю безопасное приложение и оно работает. это было сказано также выше
источник
У меня есть ранее работающий код, который выдает эту ошибку сейчас. Нет проблем с паролем. Нет необходимости конвертировать сообщения в base64. Оказывается, мне нужно сделать следующее:
Рабочий код
Отключение двухфакторной аутентификации
Установите «Разрешить менее безопасные приложения» в положение «ВКЛ» (на той же странице необходимо прокрутить вниз)
источник
Просто следуйте инструкциям в электронной почте Google и включите менее безопасные приложения.
источник
Я столкнулся с той же проблемой. Это происходит, когда вы включаете 2-этапную проверку (MFA). Просто отключите двухэтапную проверку, и ваша проблема должна быть решена.
источник
Ниже приведен мой код. У меня также была та же ошибка, но проблема заключалась в том, что я неправильно указал свой пароль. Приведенный ниже код будет работать отлично .. попробуйте
Вы можете сослаться на это в моем блоге
источник
просто включите настройку или Gmail. см. ниже данное изображение:
источник
У меня была такая же проблема для приложения, развернутого в Microsoft Azure.
Сначала я одобрил все неизвестные устройства (некоторые ip-адреса из Ирландии) на следующей странице (вошел в систему как пользователь gmail): https://security.google.com/settings/u/1/security/secureaccount
Я использовал следующие настройки для клиента:
Он начал работать только после того, как я установил следующее свойство на smtp-клиенте:
источник
Что мне помогло, так это активировать опцию для менее безопасных приложений (я использую VB.NET)
Войдите в свою учетную запись и перейдите на страницу google.com/settings/security/lesssecureapps.
источник
Комментарий Томаша Мадейского - это то, что исправило мою проблему ... он говорит, что существует ошибка в SetDefaultCredential, он говорит:
«Проблема в том, что в установщике UseDefaultCredentials есть этот код: this.transport.Credentials = value? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials: (ICredentialsByHost) null; который переопределяет учетные данные, установленные установщиком Credentials. Для меня это выглядит как ошибка« SmtClient »
если вы поставите
smtpClient.UseDefaultCredentials = false
после набора учетных данных ... эта строка установлена для обнуления этих учетных данных ...источник
НОЯБРЬ 2018, перепробовал все вышеперечисленное безуспешно.
Ниже приведено решение, которое сработало окончательно. К сожалению, он не использует SSL, но работает !!!
источник
Я попробовал все предложения, найденные здесь, от включения менее безопасных приложений до пробного порта 587 ... ничего не получалось. Наконец я только что закомментировал строку
UseDefaultCredentials = false
. Все работало, если я не трогал это логическое значение.источник
Я действительно посмотрел на множество идей, единственное решение было таким (работает с различными провайдерами электронной почты):
источник
Я являюсь подписчиком приложений Google для бизнеса и последние пару часов провожу с этим, даже имея все правильные настройки (smtp, port, enableSSL и т. Д.). Вот что сработало для меня и веб-сайтов, которые выдавали ошибку 5.5.1 при попытке отправить электронное письмо:
После этого мои почтовые формы с сайта снова работали. Удачи!
источник
Возможно, вам придется создать / сгенерировать определенный пароль APP из Gmail. Ваше приложение или скрипт будет использовать этот новый пароль вместо вашего обычного пароля. Ваш обычный пароль все равно будет работать для вас.
Вот что сделал для меня. Я все еще использовал ту же учетную запись электронной почты, но мне пришлось создать новый пароль для конкретного приложения.
https://support.google.com/accounts/answer/185833?hl=en
В основном вы можете сделать это здесь: https://security.google.com/settings/security/apppasswords
источник
Если вы используете Gmail.
1 вход в вашу учетную запись
2- просмотрите это ссылку
3- Разрешить менее безопасные приложения: ВКЛ
Наслаждаться....
источник
Вы должны запретить менее безопасные приложения для доступа к вашей учетной записи Google .
делать:
https://myaccount.google.com/lesssecureapps
источник
не ставить точку останова перед ожиданием smtp.SendMailAsync (mail);
:)
когда он ждет с точкой останова, выдающей эту ошибку, когда я удаляю точку останова, она сработала
источник
Я использовал все вышеупомянутые решения, но в конце концов он заработал только после того, как я включил IMAP-доступ из настроек Gmail. Ссылка для включения IMAP-доступа в настройках Gmail.
Конечно, баллы в других решениях тоже требовались.
источник
попробуйте изменить хост, это новый, я получил эту настройку Mozilla Thunderbird
это работа для меня
источник