1. 程式人生 > >PHPEmailer使用簡介(以qq郵箱為例)

PHPEmailer使用簡介(以qq郵箱為例)

reply Opens 安全 client 下載 attach 後來 問題: from

1、從網上下載PHPEmailer;

2、確保PHP環境支持sockets擴展,還要開啟openssl,如下圖:

技術分享圖片

技術分享圖片

3、配置QQ郵箱

  1.開啟SMTP服務

  技術分享圖片

  2.驗證密保

  技術分享圖片

  3.獲取授權碼(這個就是IMAP/SMTP的密碼)

4、發送郵件,代碼如下

  

<?php
/**
 * Created by PhpStorm.
 * User: 黎誌明
 * Date: 2018/6/20
 * Time: 17:53
 */
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime", 0);
require ‘class.phpmailer.php‘;
try {
    $mail = new PHPMailer(true);
    $mail->IsSMTP();
    $mail->CharSet = ‘UTF-8‘; // 設置郵件的字符編碼,這很重要,不然中文亂碼
    $mail->SMTPAuth = true;                  //開啟認證
    $mail->SMTPSecure = ‘ssl‘; // 使用安全協議
    $mail->Port = 465;
    $mail->Host = "smtp.qq.com";
    $mail->Username = "[email protected]";
    $mail->Password = "xxxxx";
    $mail->AddReplyTo("[email protected]", "Timothy");//回復地址
    $mail->From = "[email protected]";
    $mail->FromName = "xxxxx";
    $to = "[email protected]";
    $mail->AddAddress($to);
    $mail->Subject = "phpmailer測試標題";
    $mail->Body = "<h1>演示</h1>這是演示內容";
    $mail->AltBody = "當郵件不支持html時備用顯示"; // 當郵件不支持html時備用顯示,可以省略
    $mail->WordWrap = 80; // 設置每行字符串的長度
    //$mail->AddAttachment("c:/1.jpg");  // 添加附件
    $mail->IsHTML(true);
    $mail->Send();
    echo ‘郵件發送成功‘;
} catch (phpmailerException $e) {
    echo "郵件發送失敗:" . $e->errorMessage();
}

5、遇到的問題:SMTP Error: Could not authenticate.

  解決辦法網上絕大多數都是一下幾個(可能真的有效,但我遇到的就不能解決了)

  1.按下面的來修改;

function IsSMTP() {
$this->Mailer = ‘smtp‘;
}改為

function IsSMTP() {
$this->Mailer = ‘SMTP‘;
}

  2.將fsockopen函數替換成pfsockopen函數;

  3.使用stream_socket_client函數,代碼如下:

$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno,  $errstr,  $tval);

  以上的辦法都試過,還是不能解決我的問題,然後我就懷疑是端口的問題,原來我用的端口是25,後來改成了465就解決了,這是由於使用了SSL,端口號要變成465

PHPEmailer使用簡介(以qq郵箱為例)