使用PHPMail發送郵件遇到SMTP Error: Could not connect to SMTP host.錯誤的解決方法


簡單的發送郵件類:

 

<?php
/**
 * Created by PhpStorm.
 * User: gyc
 * Date: 2020/4/4
 * Time: 下午2:42
 * 郵件發送
 */

namespace app\plugins;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
class Mail
{
    public static function send(string $sendto, string $title, string $content)
    {
        $config = config('mail');
        $mail = new PHPMailer(true);

        $mail->SMTPDebug = SMTP::DEBUG_SERVER;
        $mail->isSMTP();
        $mail->CharSet = "utf8";// 編碼格式為utf8
        $mail->Host       = $config['host'];                    // SMTP 服務器地址
        $mail->SMTPAuth   = $config['smtpAuth'];                // 開啟SMTP驗證
        $mail->Username   = $config['userName'];               // SMTP 用戶名
        $mail->Password   = $config['password'];                // SMTP 密碼
        $mail->SMTPSecure = 'ssl';         // //使用ssl協議方式
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        $mail->Port       = $config['port'];                   // qq郵箱的ssl協議方式端口號是465/587

        //信息設置
        $mail->setFrom('727306285@qq.com', '自定義');      //發件人信息設置 這里會顯示為Mailer(xxxx@qq.com),Mailer是當做名字顯示
        $mail->addAddress($sendto);  // 設置收件人信息
        //$mail->addReplyTo('', '');// 設置回復人信息,指的是收件人收到郵件后,如果要回復,回復郵件將發送到的郵箱地址

        // 郵件內容
        $mail->isHTML(true);
        $mail->Subject = $title; //郵件標題
        $mail->Body = $content;// 郵件正文
        if (!$mail->send()){
            echo $mail->ErrorInfo;
        }else{
            echo '郵件發送成功!';
        }
    }
}

解決方法:

原來的:

$this->smtp_conn =fsockopen(
    $host,
$port,
$errno,
$errstr,
$timeout
);

修改為:
$this->smtp_conn = @stream_socket_client(
$host,
$port,
$errno,
$errstr,
$timeout
);
### 另:郵件密碼是在郵箱設置里面的授權碼,而不是登錄密碼 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM