Я посмотрел вокруг, почему мой PHP-скрипт не отправлял никаких писем, когда у меня был набор $mail->isSMTP();
.Ошибка отправки электронной почты с использованием PHPMailer по SMTP
Прежде чем перейти к проблеме, я хотел бы указать, что я использую mailgun.org в качестве своего SMTP-сервера. Мой PHP-скрипт прост, у меня есть HTML-форма, которая пересылает данные в PHP-файл, который, в свою очередь, вызывает скрипт PHPMailer и отправляет электронное письмо.
Вот код на мой PHP скрипт:
date_default_timezone_set('Asia/Manila');
require 'phpmailer/PHPMailerAutoload.php';
// include 'phpmailer/class.phpmailer.php';
// require 'phpmailer/class.smtp.php';
$mail = new PHPMailer;
//$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Debugoutput = 'html';
$mail->Host = "smtp.mailgun.org";
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = ""; //Username removed
$mail->Password = ""; //Password removed
$mail->setFrom('', ''); //Email address and Name removed
$mail->addReplyTo($userMail, $firstName);
$mail->addAddress('[email protected]', 'Name'); //Actual Values Changed
$mail->addAddress('[email protected]', 'Name'); //Actual Values Changed
$mail->addAddress('[email protected]', 'Name'); //Actual Values Changed
$mail->Subject = 'New Application for website by '. $firstName;
$mail->msgHTML($theMessage);
$mail->AltBody = $theMessage;
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else { //Some HTML code here
}
Итак, как вы можете видеть, я закомментировал $mail->isSMTP();
линию. Это связано с тем, что всякий раз, когда я пытаюсь его использовать, код не загружается, и после долгого ожидания появляется ошибка 500. (К сожалению, с помощью установки cPanel не позволяет просматривать журналы Apache).
Я попытался импортировать только файл class.phpmailer.php
, но это дало мне фатальную ошибку, что класс SMTP не был определен, что ожидалось. Затем я включил файл class.smtp.php
, который дал мне ту же самую ошибку 500.
Я осмотрел StackOverflow и наткнулся на this answer, однако это не помогло моему делу.
Я просмотрел журналы Mailgun, но у них нет записи сценария, даже пытающегося подключиться.
Additional Information: If it matters, I have the following files in the same directory:
- sendMail.php //The script above
- class.phpmailer.php
- class.smtp.php
- PHPMailerAutoload.php
- index.html //Not important in this situation.
Я надеюсь, что кто-то сможет мне помочь, я полагаюсь теперь на метод non-smtp. :/
Как говорит, что другой вопрос, делать проверки, которые приведены в [руководстве по поиску и устранению неисправностей] (https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting). Скорее всего, ваш интернет-провайдер блокирует исходящий SMTP - вы используете GoDaddy? – Synchro
@Synchro У меня был такой же результат как на локальном хосте, так и на производстве. Однако я проверю с ISP, я запускаю установку Wordpress на том же хосте, и smtp отлично работает на нем, похоже, что-то с моим кодом. –
Вы уверены? По умолчанию Wordpress будет использовать PHPMailer в режиме isMail(). Кстати, ваша ошибка 500 звучит как простой график, поскольку он не может подключиться. – Synchro