Прежде всего, вы импортируете обе версии 5 и 6 PHPMailer! Это не будет go хорошо; go с 6. Удалите эти строки и файлы, на которые они указывают; они вам не нужны:
require 'PHPMailerAutoload.php';
require "class.phpmailer.php";
require "class.smtp.php";
Если вы не знаете, как импортировать библиотеки в целом, сейчас самое время узнать о composer.
Как ни странно, когда вы комментируете код, который показывает вам, где находится ошибка, он больше не показывает вам, когда есть ошибка ... эта строка console.log(text);
должна показывать вам то, что видит ваш браузер.
Лучший способ подойти к этому - отлаживать одну вещь за раз.
Сначала убедитесь, что ваша форма действительно доставляет данные в ваш сценарий в том формате, который должен быть - учитывая JSON ошибка (которая не из PHPMailer), очень вероятно, что это не , и это, вероятно, источник всех ваших проблем. Поэтому добавьте это в верхней части вашего скрипта:
var_dump($_REQUEST);
Это нарушит ваш запрос ajax (потому что результат не JSON), но вы сможете увидеть необработанный ответ в своем веб-инспектор браузера.
Убедившись, что он имеет правильный формат и содержит все ваши ожидаемые данные формы, удалите эту строку var_dump
и перейдите к проверке того, что вы получаете доступ к свойствам в JSON правильно. Опять же, вам может быть лучше показать это в инспекторе вашего браузера. Убедившись, что вы извлекаете все нужные вам биты данных правильным образом, переходите к отправке электронной почты.
Учитывая очень распространенные проблемы с использованием Gmail через SMTP , рекомендуется протестировать код электронной почты с фиксированными значениями отдельно от вашего ajax материала - его достаточно сложно отлаживать самостоятельно, чтобы другие вещи не мешали.
Теперь у вас есть укажите, где работают все отдельные части, соедините их вместе и проверьте каждый шаг при этом.