PHP 發郵件
阿新 • • 發佈:2018-12-26
1.下載phpmailer,開啟qq的smtp,不知道怎麼的開啟自行百度。
2.結構 第一個是下載的PHPmailer,第二個是程式碼
3.程式碼
<?PHP
header("Content-type: text/html; charset=utf-8");
//引入PHPMailer的核心檔案 使用require_once包含避免出現PHPMailer類重複定義的警告
require_once("PHPMailer/class.phpmailer.php");
require_once("PHPMailer/class.smtp.php");
//示例化PHPMailer核心類
$mail = new PHPMailer();
//是否啟用smtp的debug進行除錯 開發環境建議開啟 生產環境註釋掉即可 預設關閉debug除錯模式
$mail->SMTPDebug = 1;
//使用smtp鑑權方式傳送郵件,當然你可以選擇pop方式 sendmail方式等 本文不做詳解
//可以參考http://phpmailer.github.io/PHPMailer/當中的詳細介紹
$mail->isSMTP();
//smtp需要鑑權 這個必須是true
$mail->SMTPAuth = true;
//連結qq域名郵箱的伺服器地址
$mail->Host = 'smtp.qq.com' ;
//設定使用ssl加密方式登入鑑權
$mail->SMTPSecure = 'ssl';
//設定ssl連線smtp伺服器的遠端伺服器埠號 可選465或587
$mail->Port = 465;
//設定傳送的郵件的編碼 可選GB2312 我喜歡utf-8 據說utf8在某些客戶端收信下會亂碼
$mail->CharSet = 'UTF-8';
//設定發件人姓名(暱稱) 任意內容,顯示在收件人郵件的發件人郵箱地址前的發件人姓名
$mail->FromName = '小虎哥';
//smtp登入的賬號 這裡填入字串格式的qq號即可
$mail->Username = '1287318173' ;
//smtp登入的密碼 這裡是密碼授權碼 不知道怎麼拿到密碼授權碼 自行百度
$mail->Password = 'edqxtelhiajfjih';
//設定發件人郵箱地址 這裡填入上述提到的“發件人郵箱”
$mail->From = '[email protected]';
//郵件正文是否為html編碼 注意此處是一個方法 不再是屬性 true或false
$mail->isHTML(true);
//設定收件人郵箱地址 該方法有兩個引數 第一個引數為收件人郵箱地址 第二引數為給該地址設定的暱稱 不同的郵箱系統會自動進行處理變動 這裡第二個引數的意義不大
$mail->addAddress('[email protected]', '小明線上');
//新增多個收件人 則多次呼叫方法即可
$mail->addAddress('[email protected]', '小虎線上');
//新增該郵件的主題
$mail->Subject = 'PHPMailer傳送郵件的示例';
//新增郵件正文 上方將isHTML設定成了true,則可以是完整的html字串 如:使用file_get_contents函式讀取本地的html檔案
$mail->Body = "這是一個<b style=\"color:red;\">PHPMailer</b>傳送郵件的一個測試用例";
////為該郵件新增附件 該方法也有兩個引數 第一個引數為附件存放的目錄(相對目錄、或絕對目錄均可) 第二引數為在郵件附件中該附件的名稱
$mail->addAttachment('C:/Users/12863/Desktop/logo.png', 'mm.png');
////同樣該方法可以多次呼叫 上傳多個附件
//$mail->addAttachment('./Jlib-1.1.0.js', 'Jlib.js');
//傳送命令 返回布林值
//PS:經過測試,要是收件人不存在,若不出現錯誤依然返回true 也就是說在傳送之前 自己需要些方法實現檢測該郵箱是否真實有效
$status = $mail->send();
//簡單的判斷與提示資訊
if ($status) {
echo '傳送郵件成功';
} else {
echo '傳送郵件失敗,錯誤資訊未:' . $mail->ErrorInfo;
}
?>