Устранение неполадок PHPMailer с Bluehost - PullRequest
0 голосов
/ 27 ноября 2018

Попытка настроить PHPMailer для сайта, который я разместил на Bluehost, и после целого дня исследований и устранения неполадок я просто не могу заставить его работать.

Я новичок, поэтому заранее извиняюсь завопрос новичка, но я читаю все, что могу найти (включая это и это , а также PHPMailer docs ), чтобы решить эту проблему, но не могу 'Кажется, мои правильно настроены.Любое руководство, мысли о том, что я делаю неправильно, или способы отладки этого очень ценятся.

Это то, что я нашел в отношении Bluehost SMTP .

Настройки безопасного SSL / TLS (рекомендуется)

Имя пользователя Ваш адрес электронной почты: john@example.com
Пароль Пароль для этой учетной записи электронной почты.
Входящая почта сервера.example.com *
Входящий порт 993 (IMAP) или 995 (POP3)
Исходящий сервер mail.example.com *
Исходящий порт 465 (SMTP)
Пароль аутентификации

* Замените example.com на ваше доменное имя.

Ниже приведено то, что я использую в своем файле (личная информация удалена).

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';

$mail = new PHPMailer(true);     
try {
    //Server settings
    $mail->SMTPDebug = 2;             
    $mail->isSMTP();                  
    $mail->Host = 'mail.MYDOMAIN.com';  
    $mail->SMTPAuth = true;            
    $mail->Username = 'MYEMAIL@MYDOMAIN.com';   
    $mail->Password = 'MYEMAILPASSWORD';        
    $mail->SMTPSecure = 'tls';                  
    $mail->Port = 465;                          

    //Recipients
    $mail->setFrom('MYEMAIL@MYDOMAIN.com');
    $mail->addAddress('MYEMAIL@MYDOMAIN.com'); 

    //Content
    $mail->isHTML(true);            
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}

Я установил PHPMailer с помощью Composer, чтобы файл autoload.php (и папка phpmailer) находились в папке vendor, расположенной в том же каталоге, что и файл, содержащий код, показанный выше.

После загрузки на мой сервер Bluehost, когда я пытаюсь отобразить веб-страницу с этим кодом в браузере, я получаю этот снимок экрана HTTP ERROR 500 и, разумеется, письмо не отправляется.

Error screen shot

1 Ответ

0 голосов
/ 27 ноября 2018

То, что описано во многих примерах, и документы - это то, какие комбинации шифрования и настроек порта будут работать.

У вас есть Port = 465 и SMTPSecure = 'tls';это не сработает.Либо измените Port на 587, либо SMTPSecure на 'ssl' (но , а не оба!).В его нынешнем виде вы пытаетесь открыть соединение с портом, который ожидает неявный TLS, в то же время используя протокол, который, как ожидается, должен сделать его явным с помощью STARTTLS, но это не сработает.

...