новый PHPMailer не работает? - PullRequest
0 голосов
/ 22 мая 2018

Ниже приведен код phpmailer, который я использую:

    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    require '../vendor/autoload.php'; 
    $mail = new PHPMailer(true);  
    try { 
     $mail->SMTPDebug = 2; 
     $mail->isSMTP();
     $mail->Host = as given in the configure mail client window; 
     $mail->SMTPAuth = true; 
     $mail->Username =as given in the configure mail client window; 
     $mail->Password = as given in the configure mail client window;  
     $mail->SMTPSecure = 'tls' ;
     $mail->Port = 465; 
     $mail->setFrom('my email', 'my name'); 
     $mail->addAddress('email', 'name');
     $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;
     }

Страница продолжает загружаться, а электронное письмо не отправляется. Что происходит?и как мне это настроить.Я использую Godaddy Cpanel.

1 Ответ

0 голосов
/ 22 мая 2018

Вы используете SMTP для localhost (что является рекомендуемым и, как правило, самым быстрым механизмом отправки, что касается вашего сценария), но вы включили шифрование и аутентификацию, поэтому вашему локальному почтовому серверу необходимо будет представитьдействительный сертификат для localhost, что не произойдет.Обычно нет необходимости использовать шифрование или аутентификацию при отправке на локальный хост, потому что вы можете добавить в белый список локальный хост в качестве источника, и это сделает его еще быстрее.

Если вы установите SMTPDebug = 2, вы можете посмотреть на временные метки вSMTP-разговор и посмотрите, какая часть занимает много времени.

Keepalive не поможет, если вы не отправляете много сообщений в быстрой последовательности.

Это также может помочь заглянуть в вашлоги локального почтового сервера и посмотрите, есть ли там что-нибудь интересное.

Вы также используете очень старую версию PHPMailer; получите последнюю версию и основывайте свой код на предоставленных примерах.

У вас не должно возникнуть проблем при отправке нескольких сотен сообщений в секунду.

Если ваша проблема заключается в том, что отправкаэто быстро, но конечная доставка медленная, вам нужно посмотреть в журналах локального почтового сервера, почему это так.Возможно, вы получаете отсрочку доставки.

...