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

一、從網上下載PHPEmailer;php

二、確保PHP環境支持sockets擴展,還要開啓openssl,以下圖:html

三、配置QQ郵箱安全

  1.開啓SMTP服務socket

  

  2.驗證密保tcp

  

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

四、發送郵件,代碼以下測試

  

<?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 = "xxxxxx@qq.com";
    $mail->Password = "xxxxx";
    $mail->AddReplyTo("769111968@qq.com", "Timothy");//回覆地址
    $mail->From = "xxxxx@qq.com";
    $mail->FromName = "xxxxx";
    $to = "xxxxx@qq.com";
    $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();
}

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

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

  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

相關文章
相關標籤/搜索