PHPMailer類庫下載地址
github:https://github.com/PHPMailer/PHPMailer
composer安裝
composer require phpmailer/phpmailer
1、不使用ssl模式發送代碼示例如下:
<?php
/**
* by yl
*/
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->Port = 25;
$mail->Host = "smtp.163.com";
$mail->Username = "[email protected]";
$mail->Password = "";
//$mail->IsSendmail(); //如果沒有sendmail組件就註釋掉,否則出現“Could not execute: /var/qmail/bin/sendmail ”的錯誤提示
$mail->AddReplyTo("[email protected]","mckee");//回覆地址
$mail->From = "[email protected]";
$mail->FromName = "www.aaa.com";
$to = "[email protected]";
$mail->AddAddress($to);
$mail->Subject = "phpmailer測試標題";
$mail->Body = "<h1>phpmail演示</h1>這是測試(<font color=red>www.phpddt.com</font>)對phpmailer的測試內容";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //當郵件不支持html時備用顯示,可以省略
$mail->WordWrap = 80; // 設置每行字符串的長度
//$mail->AddAttachment("f:/test.png"); //可以添加附件
$mail->IsHTML(true);
$mail->Send();
echo '郵件已發送';
} catch (phpmailerException $e) {
echo "郵件發送失敗:".$e->errorMessage();
}
?>
2、使用ssl發送
<?php
require './vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
$mail=new PHPMailer();
try{
//郵件調試模式
$mail->SMTPDebug = 2;
//設置郵件使用SMTP
$mail->isSMTP();
// 設置郵件程序以使用SMTP
$mail->Host = 'ssl://smtp.exmail.qq.com';
// 設置郵件內容的編碼
$mail->CharSet='UTF-8';
// 啓用SMTP驗證
$mail->SMTPAuth = true;
// SMTP username
$mail->Username = '郵件名稱';
// SMTP password
$mail->Password = '密碼,QQ爲登錄授權碼授權碼';
// 啓用TLS加密,`ssl`也被接受
// $mail->SMTPSecure = 'ssl';
// 連接的TCP端口
// $mail->Port = 465;
//設置發件人
$mail->setFrom('[email protected]', 'aaaa');
// 添加收件人1
$mail->addAddress('[email protected]', 'aaaa'); // Add a recipient
// $mail->addAddress('[email protected]'); // Name is optional
// 收件人回覆的郵箱
$mail->addReplyTo('[email protected]', 'aaa');
// 抄送
// $mail->addCC('[email protected]');
// $mail->addBCC('[email protected]');
//附件
// $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
// $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
//Content
// 將電子郵件格式設置爲HTML
$mail->isHTML(true);
$mail->Subject = '郵件主題';
$mail->Body = '郵件正文部分';
// $mail->AltBody = '這是非HTML郵件客戶端的純文本';
$mail->send();
echo 'Message has been sent';
$mail->isSMTP();
}catch (Exception $e){
echo 'Mailer Error: ' . $mail->ErrorInfo;
}
注意事項:防火牆問題,端口問題,測試是否通信正常:telnet smtp.163com 465