Я сделал очень простой код с формой, а затем получил эту информацию и отправил ее по электронной почте с помощью PHPMailer и G-suite. Я запустил этот код на xampp, и все в порядке. Он работает. Но когда я переношу это на свой хостинг, оно не запускается...
PD: Я читал об этой ошибке, и, возможно, она связана с правами доступа к файлам, но я перепробовал все... Установка всех файлов на 755 и, наконец, я попытался установить его на 777 и все еще не работает...
Я связался с хостинг-провайдерами и сказал, что они могут помочь мне с этой личной проблемой :/
Это мой php-код:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';
$name = "test";
$phone = "test";
$email = "test";
$mail = new PHPMailer(true);
try {
$password = 'PASSWD';
$mail->SMTPDebug = 2;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = $password;
$mail->SMTPSecure = 'tsl';
$mail->setFrom('[email protected]', 'Something');
$mail->addAddress('[email protected]');
$mail->addAddress('[email protected]');
$mail->isHTML(true);
$mail->Subject = 'New lead';
$mail->Body = 'Name: '.$name.'<br>Email: '.$email.'<br>Phone: '.$phone;
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}
Это единственная ошибка, которую я получаю:
[client IP] End of script output before headers: send.php
ПД:
SMTPSecure changed to tls
До сих пор не работает :(
РЕДАКТИРОВАТЬ
Это ошибки, которые я получаю
117.03.2019 22:04:22 [client ] AH01215: PHP Parse error: syntax error, unexpected 'use' (T_USE) in on line 3:
17.03.2019 22:04:34 [client ] AH01215: PHP Warning: Use of undefined constant \xe2\x80\x98display_errors\xe2\x80\x99 - assumed '\xe2\x80\x98display_errors\xe2\x80\x99' (this will throw an Error in a future version of PHP) in on line 2:
17.03.2019 22:05:14 [client ] AH01220: Timeout waiting for output from CGI script
17.03.2019 22:05:14 [client ] AH00574: ap_content_length_filter: apr_bucket_read() failed
ОБНОВИТЬ
Я обновил php до 7.3.2. PHPMailer находится в версии 6.0.7. И единственная другая ошибка, которую я получаю, это...
PHP Warning: Use of undefined constant \xe2\x80\x98display_errors\xe2\x80\x99 - assumed '\xe2\x80\x98display_errors\xe2\x80\x99' (this will throw an Error in a future version of PHP) in /mnt/web401/c2/79/59742679/url on line 2: /home/strato/http/power/rid/26/79/59742679/url
ОБНОВЛЕНИЕ 2
Фактический код:
ini_set('display_errors', true);
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'phpmailer2/src/Exception.php';
require 'phpmailer2/src/PHPMailer.php';
require 'phpmailer2/src/SMTP.php';
$name = "test";
$phone = "test";
$email = "test";
$mail = new PHPMailer(true);
try {
$password = 'mypassword';
$mail->SMTPDebug = 3;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'myemail';
$mail->Password = $password;
$mail->SMTPSecure = 'tls';
$mail->setFrom('email', 'fromemail');
$mail->addAddress('email');
$mail->addAddress('email');
$mail->isHTML(true);
$mail->Subject = 'New lead';
$mail->Body = 'some text';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}
Мои файлы:
(Я запускаю send2.php, потому что он использует последнюю версию phpmailer[Этот находится в phpmailer2])
Когда я выполняю код, я вижу это на экране:
2019-03-20 13:57:54 Connection: opening to smtp.gmail.com:587, timeout=300, options=array()
Я захожу в свою панель хостинга и вижу это
20.03.2019 14:55:04 my.website [client 80.38.90.0] AH01215: PHP Warning: Use of undefined constant \xe2\x80\x98display_errors\xe2\x80\x99 - assumed '\xe2\x80\x98display_errors\xe2\x80\x99' (this will throw an Error in a future version of PHP) in my.route/send2.php on line 2: my.route/send2.php
20.03.2019 14:55:44 my.website [client 80.38.90.0] AH01220: Timeout waiting for output from CGI script my.route/send2.php
20.03.2019 14:55:44 my.website [client 80.38.90.0] AH00574: ap_content_length_filter: apr_bucket_read() failed
@Synchro Я только что обновил tsl до tls, но все равно получаю эту ошибку...
@Synchro Как я уже сказал в посте, этот код работает на локальном хосте. Но его нет на хостинге. Предприятие не предоставляет такую поддержку, чтобы помочь мне. Я думаю, это их вина. И единственная ошибка, которую я получаю в журналах, это та, которую я опубликовал .... Есть ли другой способ исправить это?
Вы можете попробовать SMTPDebug = 3, но я думаю, что у вас проблемы с выводом ошибок. Возможно, попробуйте включить отображение ошибок php с помощью ini_set(‘display_errors’, true)
@Synchro Ошибки обновлены в сообщении
Пробую еще раз: ini_set('display_errors', true).
@Synchro Я только что создал новое обновление






ap_content_length_filter: apr_bucket_read() failed кажется, здесь актуальная ошибка.
Кажется, что наиболее вероятным виновником здесь является превышение тайм-аута Apache (источник: https://stackoverflow.com/a/38711063/5505001). Вы должны спросить своего веб-хостинга, разрешат ли они вам временно изменить тайм-аут Apache, чтобы увидеть, действительно ли это проблема.
PHP Parse error: syntax error, unexpected 'use'
Обычно это означает, что вы используете новую версию PHPMailer на очень старой версии PHP. Убедитесь, что вы используете как минимум PHP 5.5, хотя сейчас вы должны заниматься только новой разработкой на 7.3.
PHP Warning: Use of undefined constant \xe2\x80\x98display_errors\xe2\x80\x99
Это ошибка копирования и вставки - похоже, SO изменил одинарные кавычки, которые я использовал, на фигурные; поменяй их обратно.
Я не знаю, является ли это причиной, но
SMTPSecureдолжно бытьtls, а неtsl. Я бы посоветовал проверить журналы ошибок.