По какой-то причине ни принятый ответ, ни какие-либо другие не работают для меня на « Отправка электронной почты в .NET через Gmail ». Почему они не работают?
ОБНОВЛЕНИЕ: я попробовал все ответы (принятые и другие) в другом вопросе, но ни один из них не работает.
Я просто хотел бы знать, работает ли это для кого-то еще, иначе Google, возможно, изменил что-то (что случилось прежде).
Когда я пытаюсь использовать фрагмент кода SmtpDeliveryMethod.Network
, я быстро получаю SmtpException при отправке (сообщение). Сообщение
SMTP-сервер требует безопасного соединения, или клиент не был аутентифицирован.
Ответ сервера был:
5.5.1 Требуется аутентификация. Узнайте больше на "<- серьезно, это заканчивается там.
ОБНОВИТЬ:
Это вопрос, который я задавал давным-давно, и принятым ответом является код, который я использовал много раз в разных проектах.
Я взял некоторые идеи из этого поста и других проектов EmailSender, чтобы создать проект EmailSender в Codeplex . Он предназначен для тестирования и поддерживает мои любимые SMTP-сервисы, такие как GoDaddy и Gmail.
Ответы:
CVertex, обязательно просмотрите свой код и, если это ничего не раскрывает, опубликуйте его. Я просто включил это на тестовом сайте ASP.NET, над которым я работал, и это работает.
На самом деле, в какой-то момент у меня возникла проблема с моим кодом. Я не заметил его, пока не нашел более простую версию консольной программы и не увидел, что она работает (никаких изменений на стороне Gmail, как вы беспокоитесь). Приведенный ниже код работает так же, как примеры, на которые вы ссылались:
Я также получил его, используя комбинацию web.config, http://msdn.microsoft.com/en-us/library/w355a94k.aspx и кода (потому что
EnableSsl
в файле конфигурации нет совпадений :().источник
СЛЕДУЮЩАЯ ПОЧТИ ПОЧТИ БУДЕТ ОТВЕТИТЬ НА ВАШ ВОПРОС, ЕСЛИ ВСЕ ПРОЧЕЕ НЕ ПОЛУЧИЛОСЬ :
Я получил точно такую же ошибку, оказалось, что новый алгоритм измерения надежности пароля Google изменил, посчитав мой текущий пароль слишком слабым, и не сказал мне ничего об этом (даже сообщение или предупреждение) ... Как я узнал об этом ? Ну, я решил изменить свой пароль, чтобы посмотреть, поможет ли он (пробовал все остальное безрезультатно), и когда я сменил пароль, это сработало!
Затем, для эксперимента, я попытался изменить свой пароль обратно на свой предыдущий пароль, чтобы посмотреть, что произойдет, и Gmail на самом деле не позволил мне сделать это, сославшись на причину: «Извините, мы не можем позволить вам сохранить это изменение в качестве выбранного пароль слишком слаб "и не позволил бы мне вернуться к моему старому паролю. Из этого я понял, что это ошибка, потому что либо а) вам нужно менять пароль один раз каждые x месяцев, либо б). как я уже говорил, их алгоритмы надежности паролей изменились, и поэтому слабый пароль, который я имел, не был принят, хотя они ничего не говорили об этом, когда пытались войти НИКОГДА! Это (номер 2) наиболее вероятный сценарий, поскольку моему слабому паролю было около 4 месяцев, и это позволило мне использовать его в Gmail.
Очень плохо, что они ничего не сказали об этом, но это имеет смысл. Поскольку большинство угнанных писем регистрируются с использованием программного обеспечения вне gmail, и я предполагаю, что вам нужен более надежный пароль, если вы хотите использовать Gmail вне среды Gmail.
Надеюсь, это поможет!
источник
В дополнение к другим шагам по устранению неполадок, приведенным выше, я также хотел бы добавить, что если вы включили двухфакторную аутентификацию (также называемую двухэтапной проверкой ) в своей учетной записи GMail, вы должны сгенерировать пароль для конкретного приложения и использовать его заново. сгенерированный пароль для аутентификации через SMTP .
Чтобы создать его, перейдите на страницу https://www.google.com/settings/ и выберите Авторизация приложений и сайтов для генерации пароля.
источник
Ссылка на настройки Gmail
источник
У меня были некоторые проблемы с отправкой электронных писем с моей учетной записи Gmail, что было связано с несколькими из вышеупомянутых ситуаций. Вот краткое изложение того, как я получил это, и в то же время сохраняя его гибким:
И теперь, когда вы хотите отправить электронное письмо, все, что вам нужно сделать, это позвонить
SSLMail.SendMail
:например, на странице с элементом управления PasswordRecovery:
Или в любом месте вашего кода вы можете позвонить:
Надеюсь, это поможет любому, кто сталкивается с этим постом! (Я использовал VB.NET, но я думаю, что легко преобразовать его в любой язык .NET.)
источник
Если вы получаете сообщение об ошибке типа «SMTP-сервер требует безопасного соединения или клиент не прошел проверку подлинности. Ответ сервера был: 5.5.1 Требуется проверка подлинности. Узнайте больше на», как я получал до этого, убедитесь, что строка
SMTPClientObj.UseDefaultCredentials = False
включена и эта строка должен доSMTPClientObj.Credentials
.Я попытался переключить эти две строки противоположным образом, и вернулась ошибка 5.5.1 Authentication Required .
источник
Ох ... Это удивительно ... Сначала я не мог отправить электронное письмо по каким-либо причинам. Но после того, как я изменил последовательность этих двух строк, как показано ниже, она работает отлично.
Надеюсь, это поможет! :)
источник
Проблема не в технической возможности отправки через gmail. Это работает для большинства ситуаций. Если вы не можете получить машину для отправки, это обычно происходит из-за того, что машина не была аутентифицирована с человеком на пульте управления хотя бы один раз.
Проблема, с которой сталкивается большинство пользователей, заключается в том, что Google решает постоянно изменять исходящие ограничения. Вы должны всегда добавлять защитный код в ваше решение. Если вы начинаете видеть ошибки, уменьшите скорость отправки и просто прекратите отправку на некоторое время. Если вы продолжаете пытаться отправить, Google иногда добавляет дополнительное время к периоду задержки, прежде чем вы сможете отправить снова.
То, что я сделал в моей нынешней системе, это отправка с задержкой в 1,5 секунды между каждым сообщением. Затем, если я получу какие-либо ошибки, остановитесь на 5 минут, а затем начните снова. Обычно это работает и позволяет вам отправлять аккаунты до предела (в последний раз я проверял, что это было 2000 для первичных входов клиентов в день).
источник
Простые шаги, чтобы исправить это:
1) Войдите в свой Gmail
2) Перейдите на эту страницу https://www.google.com/settings/security/lesssecureapps и установите значение «Включить»
источник
У меня была та же проблема, но оказалось, что моя антивирусная защита блокировала исходящую «спам» электронную почту. Отключение позволило мне использовать порт 587 для отправки электронной почты SMTP через GMail
источник
Если для вас здесь ничего не работает, вам может потребоваться разрешить доступ к вашей учетной записи Gmail из сторонних приложений. Это была моя проблема. Чтобы разрешить доступ, сделайте следующее:
Это сработало для меня, надеюсь, что это работает для кого-то еще!
источник
Я не уверен, какая версия .NET требуется для этого, потому что eglasius упомянул, что нет соответствующей
enableSsl
настройки (я использую .NET 4.0, но я подозреваю, что она работает в .NET 2.0 или более поздней версии), но эта конфигурация оправдана я (и не требует использования какой-либо программной конфигурации):Возможно, вам придется сначала включить POP или IMAP в своей учетной записи Gmail: https://mail.google.com/mail/?shva=1#settings/fwdandpop
Я рекомендую сначала попробовать это с обычным почтовым клиентом ...
источник
@Andres Pompiglio: Да, верно, вы должны изменить свой пароль хотя бы один раз ... эти коды работают просто отлично:
И вы можете сделать вызов функции, используя:
источник
Я использовал корпоративное VPN-соединение. Это была причина, почему я не мог отправить электронное письмо из своего заявления. Это работает, если я отключаюсь от VPN.
источник
Я также обнаружил, что аккаунт, который я использовал для входа, был деактивирован Google по какой-то причине. После того, как я сбросил свой пароль (на тот же, что и раньше), я смог нормально отправлять электронные письма. Я получаю сообщение 5.5.1 также.
источник
Я также пытался многие решения, но внести некоторые изменения, это будет работать
с параметрами smtpclient выше работают в gmail
источник
Я получил ту же ошибку, и ни одно из вышеперечисленных решений не помогло.
Моя проблема заключалась в том, что я запускал код с удаленного сервера, который никогда не использовался для входа в учетную запись gmail.
Я открыл браузер на удаленном сервере и зашел в gmail оттуда. Он задал секретный вопрос, чтобы убедиться, что это я, так как это новое место. После проверки безопасности я смог пройти проверку подлинности с помощью кода.
источник
Включите менее безопасные приложения для своей учетной записи: https://www.google.com/settings/security/lesssecureapps
источник
Я столкнулся с этой же ошибкой ( «SMTP-серверу требуется защищенное соединение, или клиент не был аутентифицирован. Ответ сервера был: 5.5.1 Требуется аутентификация. Подробнее на» ) и обнаружил, что я использовал неправильный пароль. Я установил учетные данные, и они были отправлены правильно.
Я знаю, что уже поздно, но, возможно, это поможет кому-то еще.
источник
Еще одна вещь, которую я нашел, это то, что вы должны изменить свой пароль хотя бы один раз. И попробуйте использовать пароль безопасного уровня (не используйте того же пользователя, что и пароль, 123456 и т. Д.)
источник
Еще одно возможное решение для вас. У меня были похожие проблемы с подключением к Gmail через IMAP. Попробовав все решения, с которыми я столкнулся, о которых вы и здесь и в других местах узнаете в SO (например, включите IMAP, включите менее безопасный доступ к своей почте, используя https://accounts.google.com/b/0/displayunlockcaptcha и и так далее), я фактически создал новую учетную запись Gmail еще раз.
В моем первоначальном тесте, первая созданная мной учетная запись Gmail, я подключился к моей основной учетной записи Gmail. Это приводило к ошибочному поведению, когда Google ссылался на неправильный аккаунт. Например, запуск https://accounts.google.com/b/0/displayunlockcaptcha открыл мой основной аккаунт, а не тот, который я создал для этой цели.
Поэтому, когда я создал новую учетную запись и не подключил ее к своей основной учетной записи, выполнив все соответствующие действия, как указано выше, я обнаружил, что она работает нормально!
Я еще не подтвердил это (т.е. воспроизвел), но он, очевидно, сделал это для меня ... надеюсь, это поможет.
источник
Устанавливать
перед
источник
Есть одна или несколько причин для этой ошибки.
Войдите в свой Gmail (или любой другой, если) в вашей локальной системе.
Также проверьте менее безопасное приложение и установите для него значение «Включить», вот ссылка для GMAIL. https://www.google.com/settings/security/lesssecureapps
проверьте наличие EnableSsl в своем коде электронной почты, а также установите для него значение true.
Также проверьте, какой порт вы используете в настоящее время. 25 - Глобальный, но вы можете проверить это и для других, например 587. проверьте здесь. Все ли SMTP-коммуникации происходят за 25?
ЕСЛИ ВЫ УДАЛЕНЫ : проверьте ответ Влада Тамаса выше.
источник
Вы также можете подключиться через порт 465, но из-за некоторых ограничений пространства имен System.Net.Mail вам, возможно, придется изменить свой код. Это связано с тем, что пространство имен не позволяет создавать неявные SSL-соединения. Это обсуждается на http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx , и я предоставили пример использования CDO (Collaborative Data Object) в другом обсуждении ( SMTP GMail через ошибки C # .Net на всех портах ).
источник
Я решил эту проблему. По-видимому, это сообщение используется в нескольких типах ошибок. Моя проблема заключалась в том, что я набрал максимум 500 отправленных писем.
Войдите в учетную запись и вручную попробуйте отправить письмо. Если лимит был достигнут, он сообщит вам
источник
Если у вас есть двухэтапная проверка в учетной записи Gmail, вам нужно будет сгенерировать пароль для приложения. https://support.google.com/accounts/answer/185833?p=app_passwords_sa&hl=en&visit_id=636903322072234863-1319515789&rd=1 Выберите Как создать пароль приложения и следуйте приведенным инструкциям. Скопируйте и вставьте сгенерированный пароль приложения куда-нибудь, так как вы не сможете восстановить его после нажатия кнопки Готово.
источник
источник
Измените свой пароль Gmail и попробуйте еще раз, после этого он должен работать.
Не знаю почему, но каждый раз, когда вы меняете хостинг, вы должны сменить пароль.
источник