您好,登錄后才能下訂單哦!
1、首先檢查php是否安裝openssl模塊
<?php
echo !extension_loaded('openssl')?"Not Available":"Available";
2、接下來下載PHPMailer模塊放在Vendor目錄下
3、碼代碼
function send_email($to,$subject='',$content=''){
Vendor('PHPMailer.PHPMailerAutoload');
$mail = new \PHPMailer();
$mail->IsSMTP(); // 啟用SMTP
$mail->Host="smtp.qq.com"; //smtp服務器的名稱(這里以QQ郵箱為例)
$mail->SMTPSecure = "ssl"; //目前規定必須使用ssl,非ssl的協議已經不支持了
$mail-> Port = 465; //端口號
//$mail->SMTPDebug = 2; //用于debug PHPMailer信息
$mail->SMTPAuth = true; //啟用smtp認證
$mail->Username = "993440512@qq.com"; //你的郵箱名
$mail->Password = "XXXXXX" ; //郵箱授權碼,注意是授權碼,不是登錄密碼
$mail->From = "993440512@qq.com"; //發件人地址(也就是你的郵箱地址)
$mail->FromName = "馮戰魁"; //發件人姓名
$mail->AddAddress($to); //收件人地址
$mail->WordWrap = 50; //設置每行字符長度
$mail->IsHTML(true); // 是否HTML格式郵件
$mail->CharSet="utf-8"; //設置郵件編碼
$mail->Subject =$subject; //郵件主題
$mail->Body = $content; //郵件內容
if($mail->Send()){
echo "success";
}else{
echo $mail->ErrorInfo;//打印錯誤信息
}
}
4、之所以SMTP connect() failed是因為之前郵件配置支持非ssl的協議,可以配置25端口,但是不知道從何時開始,大部分郵件配置僅支持ssl協議了,端口號一般是465,這個bug也是我費了好長時間才debug出來,主要歸功于官方提供的$mail->SMTPDebug = 2,這個調試參數,讓我找到了問題所在。
5、以qq郵箱為例說明
配置郵件服務器和端口號的地址:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=369
這個找到之后,最重要的一點是Password這個參數,這個參數之前是賬號的登錄密碼,現在已經改成授權碼了,具體獲取方式:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
6、到此結束,就可以愉快的發郵件了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。