PHPEmailer使用簡介(以qq郵箱為例)
阿新 • • 發佈:2018-06-20
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郵箱為例)