Причина, по которой вам трудно найти PHPMailerAutoload.php
, заключается в том, что она старая и больше не поддерживается. Получите последнюю версию и основывайте свой код на предоставленном примере gmail .Если вы новичок в PHP, научитесь использовать композитор .
Эти три строки противоречат друг другу:
$mail->Host = 'ssl://smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
ssl://
в Host
переопределяетtls
in SMTPSecure
, в результате чего он пытается использовать неявный TLS для порта, ожидающего явный TLS.Либо используйте ssl
с портом 465 или tls
с портом 587, но не другие комбинации.В любом случае, похоже, что это не ваша проблема.
Поскольку в руководстве по устранению неполадок говорится об этой точной ошибке "SMTP connect () failed":
Эточасто сообщается как проблема PHPMailer, но почти всегда это связано с локальным отказом DNS, блокировкой брандмауэра (например, как это делает GoDaddy) или другой проблемой в вашей локальной сети.Это означает, что PHPMailer не может связаться с SMTP-сервером, который вы указали в свойстве Host, но не говорит точно, почему.
Далее описывается несколько методов, которые вы можете использовать, чтобы попытатьсяточно определить, почему вы не можете подключиться.Удивительные вещи, документация.
Я попробовал вашу форму с некоторыми случайными данными и увидел, что вы не включили в свой вопрос самое важное сообщение об ошибке:
2018-06-02 14:47:25 SMTP ERROR: Failed to connect to server: Network is unreachable (101)
2018-06-02 14:47:25 SMTP connect() failed
Это говорит о том, что ваш интернет-провайдер, вероятно,блокируя исходящий SMTP, поэтому у вас есть свой ответ - возможно, подтвердите, что, используя шаги, предложенные в руководстве (telnet
и т. д.), и обратитесь к документации или поддержке вашего провайдера.
У вас также есть серьезное упущение - вы 'не устанавливайте адрес «от»:
$mail->setFrom('myname@gmail.com', 'My Name');
Обратите внимание, что если вы отправляете через gmail, вы можете использовать только адрес своей учетной записи или заданные псевдонимы (заданные в настройках gmail), а не произвольные адреса.
Между тем, это довольно сумасшедшая вещь для реализации, так как у вас все равно есть - зачем кому-то вводить свои учетные данные gmail в такой форме?