2010-05-19 9 views
4

Я использую PHPMailer для отправки почты через GMail. Код, который я использую, прямо из учебника, и он отлично работает на моем ноутбуке. Однако, тестирование это на Windows 2003 Server - это, кажется, всегда возвращает ошибку ФППМ:PHPMailer с GMail: ошибка SMTP

SMTP Error: Could not connect to SMTP host. Mailer Error: SMTP Error: Could not connect to SMTP host.

Вот настройки, которые я использую в PHPMailer:

include("phpmailer/class.phpmailer.php"); 
$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPAuth = true; // enable SMTP authentication 
$mail->SMTPSecure = "ssl"; // use ssl 
$mail->Host = "smtp.gmail.com"; // GMAIL's SMTP server 
$mail->Port = 465; // SMTP port used by GMAIL server 

Могу ли я с уверенностью сказать, что на этот ISN Проблема с портом, поскольку я подключаюсь к другому серверу на порту 465 и отправляет почту. Если нет, объясните.

Как решить эту проблему?

Спасибо всем за любую помощь

+0

Что происходит, когда вы запускаете 'telnet smtp.gmail.com 465' в командной строке? – webbiedave

+0

Как на моем ноутбуке, так и на сервере, я могу использовать telnet, т. Е. Я не получал никаких ошибок, название командного окна было изменено на «Telnet smpt.gmail.com», и оно ожидало больше команд. Ввод 'bye' позволил мне выйти. Что это говорит вам, как я понятия не имею ?! Означает ли это, что это не проблема порта/брандмауэра? – Abs

+0

Мне также понадобилось '$ mail-> Username =" myUsername "; // SMTP username' и '$ mail-> Password =" myPassword "; // SMTP password' для успешной отправки почты. –

ответ

4

Первое уведомление экспромтом: Gmail использует TLS. Не знаю, будет ли использование SSL вместо TLS иметь большую разницу, но SSL является предшественником TLS.

Я рекомендую проверить также его phpmailer, настроенный для использования gmail. PHPGMailer

+1

спасибо, что попросили взглянуть на эту вещь SSL. Несмотря на то, что это не проблема, я узнал, что проблема связана с fsockopen - ему нужно расширение openssl, которое не было включено на сервере! :) – Abs

+0

Ах круто, сказал бы это, но ошибка, которую я помню, потому что она не была включена, выглядела немного иначе. –

+0

Также проверьте это: https://stackoverflow.com/questions/37079061/phpmailer-saying-could-not-connect-to-smtp-host –

2

Чтобы использовать PHPMailer с Gmail, не используют SSL/465 (это было устаревшим, начиная с 1998 года), с помощью TLS/587, как следует Noctrine, и вот как:

include 'phpmailer/class.phpmailer.php'; 
$mail = new PHPMailer; 
$mail->IsSMTP(); 
$mail->SMTPAuth = true; // enable SMTP authentication 
$mail->Host = "tls://smtp.gmail.com"; // GMAIL's SMTP server 
$mail->Port = 587; // SMTP port used by GMAIL server 
... 

Вы должны найти, что работы ,