html部分
<!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript" src="./jquery-1.12.2.min.js"></script><!-- 引入jq包 --> </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 ='2353380635@qq.com';//smtp登錄的賬號 這里填入字符串格式的qq號即可 $mail->Password = 'QQ郵箱處生成的smtp碼';//smtp登錄的密碼 使用生成的授權碼(就剛才叫你保存的最新的授權碼)【非常重要:在網頁上登陸郵箱后在設置中去獲取此授權碼】 $mail->From = '2353380635@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; } } header("Content-Type:text/html;charset=utf-8"); $flag = sendMail('2353380635@qq.com','鈞一','你好'); if($flag){ echo "發送郵件成功!"; }else{ echo "發送郵件失敗!"; } ?>
class.phpmailer.php和class.smtp.php下載地址
https://github.com/PHPMailer/PHPMailer
參照 php中文網處的發送郵件