PHPMailer-各种问题

时间:2019-02-18 08:37:34

标签: php email phpmailer

因此,我制作了一个应在用户执行操作时发送电子邮件的应用程序。 在我的本地服务器上(沼泽)。发送这些电子邮件不是问题。

我从bigrock购买了共享的Linux托管(印度服务器)。

最初,我在托管主机上测试了邮件发送功能。 也就是说,电子邮件ID的往返地址均为xyz@mydomain.com。 这项工作没有任何问题。

但是后来我尝试使用其他邮件服务。而且我还是收到错误“无法验证”(在gmail上,我打开的安全性较低的应用程序)。

在yahoo和我的公司电子邮件中,我收到“ SMTP-> Connect()错误”。

我尝试禁用$ email-> IsSMTP(); 如果发送到xyz@mydomain.com,这将起作用 但是如果发送到任何其他域则会出错。错误:无法实例化邮件功能。

我一直在努力解决此错误。我已经在这里和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"]

我已经检查了所有提供的参数,它们是正确的。

我需要帮助。这是阻止我交付该项目的最后一件事。发送邮件是此应用的主要功能。

PS:我检查了bigrock上的php扩展名。那里没有openssl选项。可能有问题吗? 更新:使用

对此进行了检查
<?php echo (extension_loaded('openssl')?'SSL loaded':'SSL not loaded')."\n"; ?>

它说“ SSL已加载”。所以我想扩展名已加载。

0 个答案:

没有答案