html代碼
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> </head> <body> <script type="text/javascript"> function yx(){ $.ajax({ type:"post", url:"./mailbox.php", data:{}, jsonType:"json", success:function(mag){ if (mag==1) { alert('發送成功'); }else{ alert(mag); } } }) } </script> <!-- 點擊觸發yx方法調用php發送郵件 --> <a href="javascript:;" onclick="yx()">郵箱</a> </body> </html>
PHP代碼如下
<?php function sendMail($to,$title,$content){ //引入PHPMailer的核心文件 使用require_once包含避免出現PHPMailer類重復定義的警告 require_once("./class.phpmailer.php"); require_once("./class.smtp.php"); $mail = new PHPMailer();//實例化PHPMailer核心類 $mail->SMTPDebug = 1;//是否啟用smtp的debug進行調試 開發環境建議開啟 生產環境注釋掉即可 默認關閉debug調試模式 $mail->isSMTP();//使用smtp鑒權方式發送郵件 $mail->SMTPAuth=true;//smtp需要鑒權 這個必須是true $mail->Host = 'smtp.qq.com';//鏈接qq域名郵箱的服務器地址 $mail->SMTPSecure = 'ssl';//設置使用ssl加密方式登錄鑒權 $mail->Port = 465;//設置ssl連接smtp服務器的遠程服務器端口號,以前的默認是25,但是現在新的好像已經不可用了 可選465或587 $mail->CharSet = 'UTF-8';//設置發送的郵件的編碼 可選GB2312 我喜歡utf-8 據說utf8在某些客戶端收信下會亂碼 $mail->FromName = '冷晨';//設置發件人姓名(昵稱) 任意內容,顯示在收件人郵件的發件人郵箱地址前的發件人姓名 $mail->Username ='12059991@qq.com';//smtp登錄的賬號 這里填入字符串格式的qq號即可 $mail->Password = '你自己的授權碼';//smtp登錄的密碼 使用生成的授權碼(就剛才叫你保存的最新的授權碼)【非常重要:在網頁上登陸郵箱后在設置中去獲取此授權碼】 $mail->From = '12059991@qq.com';//設置發件人郵箱地址 這里填入上述提到的“發件人郵箱” $mail->isHTML(true);//郵件正文是否為html編碼 注意此處是一個方法 不再是屬性 true或false $mail->addAddress($to);//設置收件人郵箱地址 $mail->Subject = $title;//添加該郵件的主題 $mail->Body = $content;//添加郵件正文 上方將isHTML設置成了true,則可以是完整的html字符串 如:使用file_get_contents函數讀取本地的html文件 //簡單的判斷與提示信息 if($mail->send()) { return true; }else{ return false; } } date_default_timezone_set('PRC'); header("Content-Type:text/html;charset=utf-8"); $flag = sendMail('12059991@qq.com','測試','測試郵件'); if($flag){ echo "發送郵件成功!"; }else{ echo "發送郵件失敗!"; } ?>
然后qq郵箱的設置
需要把這兩個開啟 授權碼也是在這里獲取
然后php需要的兩個文件
class.phpmailer.php和class.smtp.php下載地址
鏈接:https://pan.baidu.com/s/1nNeCUgV8poWbCVVh2Yb7Qw
提取碼:d0oq
然后注意環境需要開啟ssl
1.打開php配置文件php.ini;
2.找到;extension=php_openssl.dll,去掉前面的分號;如果不存在則加入此項;
3.將php根目錄下的ssleay32.dll和libeay32.dll文件,以及php/ext下的php_openssl.dll 這三個文件復制,然后粘貼到:C:/WINDOWS/system32文件夾下;
4.重啟web服務器
---------------------
按照以上操作的,還是報錯