Невозможно отправить почту через Google SMTP с PHPMailer

Я пытаюсь отправить почту, используя SMTP Google в сочетании с PHPMailer, но не могу заставить его работать. Это мой код:

$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = "[email protected]";
$mail->Password = "**********";
$mail->Port = "465";

Во-первых, я не совсем понимаю, что нужно указывать как «SMTPSecure», одни говорят «ssl», другие - «tls». Затем для «Порт» я мог ввести «465» или «587». Но ни одна из комбинаций не работает ... Обратите внимание, что я использую обычную учетную запись Gmail, а не Google Apps. В моей учетной записи Gmail я включил «доступ по протоколу POP».

Я получаю следующее сообщение об ошибке: «Must issue a STARTTLS command first». Это означает, что SSL не удалось, но не знаю почему ...


person bart    schedule 01.05.2009    source источник


Ответы (5)


Хорошо, проблема была в версии PHPMailer. Я обновился до PHPMailer версии 5, и все отлично работало. Я использовал phpMailer версии 1.02.

person bart    schedule 01.05.2009
comment
на странице sourceforge нет версии 5 .. она идет только до версии 2 - person ladieu; 30.06.2011
comment
Для поисковиков: PHPMailer находится на GitHub по адресу github.com/PHPMailer/PHPMailer. Он не поддерживался на sourceforge много лет. - person Synchro; 23.10.2016

У меня были аналогичные проблемы с GMail при использовании его через CodeIgniter

Для меня сработала смена хоста:

$mail->Host = "ssl://smtp.googlemail.com";
person Jon Winstanley    schedule 01.05.2009
comment
вроде сработало для меня. Я использовал ssl: //smtp.gmail.com. - person Thupten; 15.10.2013

Установите $ mail-> SMTPDebug = 1; Это даст вам больше информации об этой ошибке. Скорее всего, вы получите сообщение «Невозможно найти транспорт сокета« ssl »- вы забыли включить его при настройке PHP». Чтобы исправить это, удалите ";" from; extension = php_openssl.dll в строке php.ini.

PS Мне тоже нравится XAMPP :)))

person kami    schedule 24.03.2010

$ host = "ssl: //smtp.gmail.com"; $ port = "465"

Я перешел с SSL на ssl. Оно работает.

person user1804314    schedule 13.10.2010

Согласно этому сообщению, Google может больше не предлагать эту услугу:

http://www.web-development-blog.com/archives/send-e-mail-messages-via-smtp-with-phpmailer-and-gmail/

person Mike Gifford    schedule 19.03.2013