PHPMailer - различные проблемы - PullRequest
0 голосов
/ 18 февраля 2019

Итак, я создал приложение, которое должно отправлять электронную почту, когда пользователь выполняет действия.На моем локальном сервере (wamp).Отправка этих писем не была проблемой.

Я купил общий хостинг linux (индийский сервер) от bigrock.

Изначально я протестировал функцию почтовой рассылки на своем хостинге.т. е. идентификаторы отправителя и получателя были xyz@mydomain.com.Это работало без проблем.

Но потом я попытался с другими почтовыми службами.И я либо получаю сообщение об ошибке «Не удалось проверить подлинность» (В gmail у меня включено менее защищенное приложение).

При работе с электронной почтой Yahoo и моей компании я получаю сообщение «Ошибка SMTP-> Connect ()».

Я попытался отключить $ email-> IsSMTP ();Это будет работать при отправке на xyz@mydomain.com, но выдает ошибку при отправке в любой другой домен.ОШИБКА: не удалось создать экземпляр почтовой функции.

Я пытаюсь разобраться в этой ошибке.Я уже прочитал сотни Q / A здесь и github.

Ниже мой Код

function my_SendEmail($quote,$message,$params,$details)
{
    $return=array(0,"Email Sent");
    // Connection Settings
    $settings=$params;
    //print_r($settings);
    $from=$details->from;
    $mailer=$details->mailer;
    $subject=$details->subject;

    $mail = new PHPMailer(true);                                // Passing `true` enables exceptions
    try {
        //Server settings
        $mail->SMTPDebug = 4;                    // Enable verbose debug output
        $mail->IsSMTP();                                        // Set mailer to use SMTP
        $mail->Host = gethostbyname($settings->host);           // Specify main and backup SMTP servers
        $mail->SMTPAuth = true;                                 // Enable SMTP authentication
        $mail->Username = $settings->login;                     // SMTP username
        $mail->Password = $settings->password;                  // SMTP password
        $mail->SMTPSecure = $settings->security;                // Enable TSL encryption, `ssl` also accepted
        $mail->Port = $settings->port;                          // TCP port to connect to
        $mail->SMTPOptions = array( 'ssl' => array(
                                                    'verify_peer' => false,
                                                    'verify_peer_name' => false,
                                                    'allow_self_signed' => true
                                                  )
                                  );
        //From
        $mail->setFrom($from, $mailer);

        //Recipients
        $mail->addAddress($details->to,$details->recipientName);     // Add a recipient           // Name is optional
        $mail->addReplyTo($from, $mailer);
        foreach($quote->cc as $cc)
        {
            $mail->addCC($cc);
        }
        //Attachments
        foreach($quote->attachments as $file)
        {
            $mail->addAttachment($file);    // Add attachments  // Optional name
        }
        //Content
        $mail->isHTML(true);                                  // Set email format to HTML
        $mail->Subject = $subject;
        $mail->Body    = $message;
        $mail->AltBody = 'Non-HTML Mail Clients Not Supported, Please View This email in a browser or get a HTML friendly Email Client.';
        $mail->send();
    }
    catch (Exception $e)
    {
        $return=array(1,'Error: '.$mail->ErrorInfo);
    }
    return $return;
}

Ошибка, когда SMPT включен.

2019-02-18 08:37:57 Connection: opening to ssl://103.20.215.161:465, timeout=300, options=array (  &#039;ssl&#039; =&gt;   array (    &#039;verify_peer&#039; =&gt; false,    &#039;verify_peer_name&#039; =&gt; false,    &#039;allow_self_signed&#039; =&gt; true,  ),)<br>
2019-02-18 08:39:00 Connection failed. Error #2: stream_socket_client(): unable to connect to ssl://103.20.215.161:465 (Connection timed out) [/home/justq3zt/public_html/PHPMailer/src/SMTP.php line 325]<br>
2019-02-18 08:39:00 SMTP ERROR: Failed to connect to server: Connection timed out (110)<br>
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting<br>
[1,"Error: SMTP connect() failed. https:\/\/github.com\/PHPMailer\/PHPMailer\/wiki\/Troubleshooting"]

I 'проверил все предоставленные параметры, и они правильные.

Мне нужна помощь.Это последнее, что мешает мне реализовать этот проект.И отправка почты является основной функцией этого приложения.

PS: я проверял расширения php на bigrock.Там нет варианта openssl там.Может ли это быть проблемой?Обновление: проверил это, используя

<?php echo (extension_loaded('openssl')?'SSL loaded':'SSL not loaded')."\n"; ?>

Он говорит "SSL Loaded" .. Так что я думаю, расширение загружено.

...