1. 首先下載phpmailer插件,并將插件復制到目錄下
?
下載地址:?http://download.csdn.net/download/m_nanle_xiaobudiu/10261269
?
2. home/view/user/mail_chck.html
?
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>老遲網絡驗證郵件</title><style type="text/css">*{margin-bottom: 1%;}</style>
</head>
<body>
<form action="/home/User/mail_check" method="post"><input type="text" name="email" placeholder="請輸入郵箱" ><br><input type="submit" value="立即提交"></form>
</body>
</html>
顯示為:
?
2. home/controller/usercontroller
這里,我將方法定義在了home/UserController中
?
<?phpnamespace Home\Controller;use Think\Controller;
class UserController extends Controller
{function mail_check() {if(IS_POST) {$to = $_POST['email'];$username = $_POST['username'];$title = '注冊郵箱';$content = '驗證郵箱';$this->sendMail($to,$username,$title,$content);} else {$this->display();}}/*** @param $to '收件人'* @param $title '標題'* @param $content '內容'* @return bool* @throws \phpmailerException*/function sendMail($to,$username,$title,$content){import("phpMailer.PHPMailerAutoload");//實例化PHPMailer核心類$mail = new \PHPMailer();//是否啟用smtp的debug進行調試 開發環境建議開啟 生產環境注釋掉即可 默認關閉debug調試模式$mail->SMTPDebug = 1;//使用smtp鑒權方式發送郵件$mail->isSMTP();//smtp需要鑒權 這個必須是true$mail->SMTPAuth = true;//鏈接qq域名郵箱的服務器地址$mail->Host = 'smtp.126.com';//設置使用ssl加密方式登錄鑒權$mail->SMTPSecure = 'ssl';//設置ssl連接smtp服務器的遠程服務器端口號,以前的默認是25,但是現在新的好像已經不可用了 可選465或587$mail->Port = 465;//設置smtp的helo消息頭 這個可有可無 內容任意// $mail->Helo = 'Hello smtp.qq.com Server';//設置發件人的主機域 可有可無 默認為localhost 內容任意,建議使用你的域名$mail->Hostname = 'http://oo';//設置發送的郵件的編碼 可選GB2312 我喜歡utf-8 據說utf8在某些客戶端收信下會亂碼$mail->CharSet = 'UTF-8';//設置發件人姓名(昵稱) 任意內容,顯示在收件人郵件的發件人郵箱地址前的發件人姓名$mail->FromName = '老遲網絡工作室';//smtp登錄的賬號(這里填寫我們自己的郵箱賬號)$mail->Username ='chishen163@126.com';//smtp登錄的密碼 使用生成的授權碼(最新的授權碼)
// $mail->Password = 'gkuksfwcdovvbiii';$mail->Password = '';//設置發件人郵箱地址 這里填入上述提到的“發件人郵箱”$mail->From = 'chishen163@126.com';//郵件正文是否為html編碼 注意此處是一個方法 不再是屬性 true或false$mail->isHTML(true);//設置收件人郵箱地址$mail->addAddress($to,$username);//添加該郵件的主題$mail->Subject = $title;//添加郵件正文 上方將isHTML設置成了true,則可以是完整的html字符串 如:使用file_get_contents函數讀取本地的html文件$mail->Body = $content;//為該郵件添加附件 該方法也有兩個參數 第一個參數為附件存放的目錄(相對目錄、或絕對目錄均可)// 第二參數為在郵件附件中該附件的名稱// $mail->addAttachment('./d.jpg','mm.jpg');//同樣該方法可以多次調用 上傳多個附件// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');$status = $mail->send();//簡單的判斷與提示信息if($status) {echo "發送成功";}else{echo "發送失敗,請重試";}}}
這樣,我們就可以用我們自己的郵箱發送到用戶填寫的郵箱中去了
?
效果:
這里,我們發送的內容可以定義為驗證郵箱的內容,例如
?
注:生產環境下,請將phpmailer中的調試關掉,否則會返回多余信息