PHPMailer не работает на сервере Namecheap

Я написал следующий код для отправки электронной почты с моего веб-сайта, размещенного в Namecheap.

<?php
include("constants.php");

require_once('libs/phpmailer/class.phpmailer.php');
require_once("libs/phpmailer/class.smtp.php");
require ("libs/phpmailer/PHPMailerAutoload.php");

try {
    $mailer = new PHPMailer();
    $mailer->IsSMTP();
    $mailer->SMTPSecure = 'tls';
    $mailer->Host = 'smtp.zoho.com';
    $mailer->SMPTDebug = 2;
    $mailer->Port = 587;
    $mailer->Username = EMAIL;
    $mailer->Password = PASSWORD;
    $mailer->SMTPAuth = true;
    $mailer->From = EMAIL;
    $mailer->FromName = "User";
    $mailer->Subject = 'New Query Received';
    $mailer->isHTML(true);
    $mailer->Body = '<p>Hello,</p><p> The following query was received from '.$_POST['name']. '.<br>"'. $_POST['message']. '"</p><p>'.'His email is '.$_POST['email'].'</p><p>Hope you will have a great day.</p><p>Best Regards,</p>';
    $mailer->AddReplyTo(EMAIL_REC, 'Contact');

    $mailer->AddAddress(ADDRESS, NAME);

    $mailer->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    ));


    if ($mailer->Send()) {
        echo "Sent";
    } 
    else {
        echo $mailer->ErrorInfo;     
    }
}
catch (phpmailerException $e) {
    echo $e->errorMessage(); 
} catch (Exception $e) {
    echo $e->getMessage(); 
}

header('Location:index.html');
exit;

?>

Я использую почту zoho для своего почтового хоста, но я пробовал то же самое, используя учетную запись gmail. Я уже перекрестно проверил ЭЛЕКТРОННУЮ ПОЧТУ и ее пароль.

Код отлично работает на моем локальном хосте, но вызывает ошибку «SMTP connect ()» на сервере Namecheap.

Если я прокомментирую $mailer->IsSMTP(); тогда никакая ошибка не светится, но электронная почта не отправляется.


person shreyansh    schedule 11.08.2018    source источник
comment
Прочитайте документы как из PHPMailer, так и из NameCheap. Ваш интернет-провайдер блокирует исходящий SMTP; они, вероятно, предоставляют способ обойти это (например, предоставляя ретранслятор почты), но вам понадобится информация от них.   -  person Synchro    schedule 13.08.2018