Intereting Posts
Экспорт отдельных событий Календаря Google в ICS? Дружественные URL-адреса – переписывание мод и переадресация php Как аккуратно обрабатывать исключения в командах Artisan POSTing произвольное количество записей из HTML-формы Шаблон проектирования для развертки / фильтра Разрешить PHP-файл запрашивать javascript, но не напрямую из браузера Получить сообщение об отказе в php? Codeigniter 2 – функция обратного вызова в My_Controller PHP Получить пользовательский ввод без необходимости нажатия клавиши возврата Что считается лучшей практикой для обработки переменных, хранящихся в файле конфигурации? Передача переменных GET с использованием заголовка в PHP файл не загружается в ajax php mysql Почему мой сайт всегда использует ErrorController для всех типов ошибок независимо от кода состояния HTTP? Уникальный код, основанный на уникальном адресе электронной почты в таблице mysql? Создание столбцов одинаковой ширины

PHPMailer – SMTP ERROR: команда паролей не удалась при отправке почты с моего сервера

Я использовал концепцию phpmailer () для отправки почты пользователям с моего общего сервера с использованием php-скрипта, но я не могу отправить, хотя все верно в моем скрипте в соответствии с кодом phpmailer.

Мой код:

$message = " This is testing message from my server"; $mail = new PHPMailer(); // create a new object $mail->IsSMTP(); // enable SMTP $mail->Host = "smtp.gmail.com"; $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only $mail->SMTPAuth = true; // authentication enabled $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail $mail->Port = 465; // or 587 $mail->IsHTML(true); $mail->Username = "moorthi.mrk10@gmail.com"; // My gmail username $mail->Password = "************"; // My Gmail Password $mail->SetFrom("moorthi.mrk10@gmail.com"); $mail->Subject = "Test Mail from my Server"; $mail->Body = $message; $mail->AddAddress($email); if($mail->Send()) { print json_encode("SUCCESS"); } else { echo "Mailer Error: " . $mail->ErrorInfo; } 

Примечание. Я использовал «GMail» в качестве моего SMTP-сервера, а SMTPSecure – «ssl», а порт «465», а имя пользователя и пароль – это мое имя пользователя и пароль GMail

Я использовал общий сервер VPS, и я сохранил свой php-скрипт на этом сервере.

Я думаю, что в моем php-скрипте нет проблем, и я не знаю, почему это не работает.

Я получил ОШИБКУ вот так.

  2014-02-21 12:30:11 CLIENT -> SERVER: EHLO jkcorporates.com 2014-02-21 12:30:11 CLIENT -> SERVER: AUTH LOGIN 2014-02-21 12:30:11 CLIENT -> SERVER: bW9vcnRoaS5tcmsxMEBnbWFpbC5jb20= 2014-02-21 12:30:11 CLIENT -> SERVER: OTk0MTI0MTE0MA== 2014-02-21 12:30:11 SMTP ERROR: Password command failed: 534-5.7.14 534-5.7.14 i-_eumA> Please log in via your web browser and then try again. 534 5.7.14 54 k76sm17979938yho.18 - gsmtp 2014-02-21 12:30:11 CLIENT -> SERVER: QUIT " The ERROR is " SMTP connect() failed. 

Пожалуйста, дайте некоторое решение для этого.
Заранее спасибо.

Помните: я использую имя общего сервера «VPS.mydomain.com», и я хочу использовать GMail в качестве моего SMTP-сервера для отправки почты пользователям.

Немного поздно, но, возможно, кто-то найдет это полезным.

Ссылки, которые устраняют проблему (вы должны войти в учетную запись google):

https://security.google.com/settings/security/activity?hl=en&pli=1

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

https://accounts.google.com/b/0/DisplayUnlockCaptcha

Некоторое объяснение того, что происходит:

Эта проблема может быть вызвана либо «менее безопасными» приложениями, пытающимися использовать учетную запись электронной почты (это соответствует подсказке Google, но не уверен, как они судят, что является безопасным, а что нет). Или, если вы пытаетесь войти в систему несколько раз в строка ИЛИ, если вы меняете страны (например, используйте VPN, переместите код на другой сервер или попробуйте войти в систему из разных уголков мира).

Чтобы решить, я должен был: (первый раз)

  • войти в мой аккаунт через интернет
  • просмотреть недавние попытки использовать учетную запись и принять подозрительный доступ: ЭТО ЛИНК
  • отключить функцию блокировки подозрительных приложений / технологий: ЭТО ЛИНК

Это работало впервые, но несколько часов спустя, вероятно, потому, что я много тестировал проблему, и она не была исправлена ​​с использованием вышеуказанного метода. Кроме того, мне пришлось очистить капчу (забавная картинка, в которой вам предлагается переписать слово или предложение при входе в любую учетную запись в настоящее время слишком много раз):

  • после входа на мой счет я пошел ЗДЕСЬ
  • Нажмите, чтобы продолжить

Надеюсь это поможет.

Использовать это:

 https://www.google.com/settings/u/1/security/lesssecureapps https://accounts.google.com/b/0/DisplayUnlockCaptcha https://security.google.com/settings/security/activity?hl=en&pli=1 

эта ссылка разрешает доступ к учетной записи google

ОБНОВЛЕНИЕ 19-05-2017:

Эти url вы должны посетить с IP-адреса, который будет отправлять по электронной почте

Решена проблема – PHPMailer – SMTP ERROR: команда паролей не удалась при отправке почты с моего сервера

  require_once('class.phpmailer.php'); include("class.smtp.php"); $nameField = $_POST['name']; $emailField = $_POST['email']; $messageField = $_POST['message']; $phoneField = $_POST['contactno']; $cityField = $_POST['city']; $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch $mail->IsSMTP(); // telling the class to use SMTP $body .= $nameField; try { //$mail->Host = "mail.gmail.com"; // SMTP server $mail->SMTPDebug = 2; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "ssl"; // sets the prefix to the servier $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server $mail->Port = 465; // set the SMTP port for the GMAIL server $mail->SMTPKeepAlive = true; $mail->Mailer = "smtp"; $mail->Username = "xxxxx@gmail.com"; // GMAIL username $mail->Password = "********"; // GMAIL password $mail->AddAddress('sendto@gmail.com', 'abc'); $mail->SetFrom('xxxxxx@gmail.com', 'def'); $mail->Subject = 'PHPMailer Test Subject via mail(), advanced'; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically $mail->MsgHTML($body); $mail->Send(); echo "Message Sent OK</p>\n"; header("location: ../test.html"); } catch (phpmailerException $e) { echo $e->errorMessage(); //Pretty error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); //Boring error messages from anything else! } в  require_once('class.phpmailer.php'); include("class.smtp.php"); $nameField = $_POST['name']; $emailField = $_POST['email']; $messageField = $_POST['message']; $phoneField = $_POST['contactno']; $cityField = $_POST['city']; $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch $mail->IsSMTP(); // telling the class to use SMTP $body .= $nameField; try { //$mail->Host = "mail.gmail.com"; // SMTP server $mail->SMTPDebug = 2; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "ssl"; // sets the prefix to the servier $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server $mail->Port = 465; // set the SMTP port for the GMAIL server $mail->SMTPKeepAlive = true; $mail->Mailer = "smtp"; $mail->Username = "xxxxx@gmail.com"; // GMAIL username $mail->Password = "********"; // GMAIL password $mail->AddAddress('sendto@gmail.com', 'abc'); $mail->SetFrom('xxxxxx@gmail.com', 'def'); $mail->Subject = 'PHPMailer Test Subject via mail(), advanced'; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically $mail->MsgHTML($body); $mail->Send(); echo "Message Sent OK</p>\n"; header("location: ../test.html"); } catch (phpmailerException $e) { echo $e->errorMessage(); //Pretty error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); //Boring error messages from anything else! } 

Важный:

Перейдите в настройку Google и включите «менее безопасные» приложения. Это будет работать. Это работало для меня.

Как уже говорили другие, вы можете включить «менее безопасные» приложения или просто переключиться с ssl на tls :

 $mailer->Host = 'tls://smtp.gmail.com'; $mailer->SMTPAuth = true; $mailer->Username = "xxx@gmail.com"; $mailer->Password = "***"; $mailer->SMTPSecure = 'tls'; $mailer->Port = 587; 

При использовании tls нет необходимости предоставлять доступ для менее безопасных приложений, просто убедитесь, что IMAP включен.

Я сталкиваюсь с той же проблемой и думаю, что знаю, почему это происходит.

Учетная запись gmail, которую я использую, обычно используется в Индии, а используемый мной веб-сервер находится в Нидерландах.

Google уведомляет о том, что была попытка входа в систему из необычного местоположения и требует входа из этого места через веб-браузер.

Кроме того, я должен был принять подозрительный доступ к учетной записи gmail с помощью https://security.google.com/settings/security/activity

Но в конце концов моя проблема еще не решена, потому что я должен войти в gmail из местоположения в Нидерландах.

Надеюсь, это поможет вам немного! (извините, я не читаю ответы по электронной почте на этот адрес электронной почты)

Если вы пользователь G Suit, он может быть разрешен администратором

  1. Перейдите в панель администратора
  2. Введите верхнюю строку поиска « Безопасность » (выберите значок «Безопасность с помощью экрана»)
  3. Открыть Основные настройки
  4. Перейти к разделу « Меньше безопасных приложений »
  5. Нажмите: перейти к настройкам для менее безопасных приложений >>

И теперь выберите одну из кнопок Radio a) Отключите доступ к менее безопасным приложениям для всех пользователей (рекомендуется) b) Разрешить пользователям управлять своим доступом к менее защищенным приложениям c) Обеспечить доступ к менее безопасным приложениям для всех пользователей (не рекомендуется)

Обычно он не работает из-за а)! И начнет работать сразу с опцией c). b) – опция должна иметь больше конфигурации для каждого пользователя в GSuit

Надеюсь, поможет

Эта ошибка связана с дополнительными функциями безопасности gmail.

Как только эта ошибка будет сгенерирована … Пожалуйста, войдите в свою учетную запись gmail .. там вы можете найти предупреждение безопасности от GOOGLE. Следуйте по почте … проверьте на клик для менее безопасного варианта. Затем попробуйте снова phpmailer ..

Для тех, кто все еще не может заставить его работать, попробуйте следующее в дополнение к методу, предоставленному @CallMeBob.

php.ini

  1. Перейдите в C: \ xampp \ php , отредактируйте файл php.ini с помощью блокнота.
  2. Нажмите CTRL + F на клавиатуре, введите sendmail_path в строку поиска и дважды нажмите « Найти следующий» .
  3. Прямо сейчас, вы должны быть в разделе [mail munction] .

Удалите точку с запятой для этой строки: sendmail_path = "\" C: \ xampp \ sendmail \ sendmail.exe \ "-t"
Добавьте точку с запятой для этой строки: sendmail_path = "C: \ xampp \ mailtodisk \ mailtodisk.exe"

SendMail.ini

  • Перейдите в C: \ xampp \ sendmail , отредактируйте файл sendmail.ini с помощью блокнота
  • Измените следующее:
  • smtp_server = smtp.gmail.com
  • smtp_port = 465
  • auth_username=your-gmail-username@gmail.com
  • auth_password = ваш-Gmail-пароль
  • force_sender=your-gmail-username@gmail.com

Заметка:
** smtp_port должен совпадать с вашими, написанными в вашем php-коде.
** Не забудьте изменить свое имя пользователя gmail и пароль gmail на любую учетную запись, которую вы используете.
**

Надеюсь это поможет! 🙂