使用PHP發送email進行帳號啟用或者密碼修改操作

來源:互聯網
上載者:User

標籤:預設   user   系統   image   pop   cti   錯誤   hang   bsp   

 使用PHPMailer編寫發送郵件

  PHPMailer需PHP的socket擴充支援,而PHPMailer連結qq網域名稱郵箱時需要ssl加密方式(qq郵箱最近做了限制,新開網域名稱郵箱不再允許通過smtp協議的25連接埠的普通連結方式連結,只允許ssl的465或587連接埠[我的一個網域名稱郵箱內測期開通的網域名稱郵箱目前25連接埠還是可以連結的,可能是安全性原則,限制了新開網域名稱郵箱賬戶的25連接埠]),固php還得openssl的支援,可以查看phpinfo

 

準備工作:

1、PHPMailer類檔案

 

2、有一個郵箱帳號,這裡我使用的是QQ郵箱

【注】這裡有一點尤其要引起注意啦,一定要保證該郵箱帳號的SMTP/POP3服務是開啟的,否則是沒有辦法串連到郵箱伺服器,更不可能發送郵件的。

具體查看:

【設定】-->【郵箱設定】-->【賬戶】-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務

 

 

在進行此操作時,常會出現一下錯誤:

1、Function set_magic_quotes_runtime() is deprecated?

 【問題緣由】PHP5.3和PHP6.0之後移除了set_magic_quotes_runtime()函數

   【解決之道】就是用ini_set()辦法替代原有的set_magic_quotes_runtime文法,例如:

 

2、Password command failed: 535 Error: authentication failed?

   【解決之道】將$mail->Password該配置項的值修改為SMTP伺服器的授權碼即可,而不是登入SMTP伺服器的密碼。

 

 

<?php
$user_name = "李武明";$content = <<<html<pre>親愛的$user_name:您好,您的小米帳號117314868於2016-12-17 12:03:30登入小米雲端服務。如果此登入行為非您本人操作,請立即登入https://account.xiaomi.com 修改密碼如果您對此通知有任何疑問,請訪問<a href="https://www.baidu.com">http://www.mi.com/service/contact</a> 聯絡我們的客服進行諮詢此郵件由系統自動發出,請勿直接回複。</pre>html;$addAddress = array(‘[email protected]‘,‘[email protected]‘,‘[email protected]‘);$config = array(‘fromName‘=>‘李武明‘,‘userName‘=>‘[email protected]‘,‘userPwd‘=>‘lxpuoxthkatdhjic‘,‘from‘=>‘[email protected]‘,‘subject‘=>‘PHPMailer發送郵件的測試‘,‘content‘=>$content,‘addAttachment‘=> array("./zhuomian1.png","./zhuomian2.png","./zhuomian3.png","./zhuomian4.png"));postmail($addAddress,$config);/** * @brief:發送email * @param $to 收件者 * @param $config SMTP伺服器相關配置資訊 * @param $content 郵件內容 */function postmail($addAddress,$config){require_once("./PHPMailer/class.phpmailer.php"); $mail = new PHPMailer();//樣本化PHPMailer核心類//SMTP伺服器的相關資訊設定$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伺服器的遠程伺服器連接埠號碼 可選465或587$mail->CharSet = ‘UTF-8‘; //設定發送的郵件的編碼//寄件者資訊相關設定$mail->FromName = $config[‘fromName‘]; //設定寄件者姓名(暱稱) 任意內容,顯示在收件者郵件的寄件者郵箱地址前的寄件者姓名$mail->Username = $config[‘userName‘]; //smtp登入的帳號 這裡填入字串格式的qq號即可$mail->Password = $config[‘userPwd‘]; //smtp登入的密碼$mail->From = $config[‘from‘]; //設定寄件者郵箱地址//郵件內容設定$mail->isHTML(true); //郵件內文是否為html編碼 注意此處是一個方法 不再是屬性 true或false//設定收件者郵箱地址 該方法有兩個參數 第一個參數為收件者郵箱地址if(empty($addAddress)){return false;}else if(is_array($addAddress)){foreach($addAddress as $value){if(is_array($value)){$mail->addAddress($value[‘email‘],$value[‘text‘]);}else{$mail->addAddress($value);}}}else{$mail->addAddress($value[‘email‘]);}//為該郵件添加附件 該方法也有兩個參數 第一個參數為附件存放的目錄(相對目錄、或絕對目錄均可) 第二參數為在郵件附件中該附件的名稱if(is_array($config[‘addAttachment‘])){foreach($config[‘addAttachment‘] as $value){$mail->addAttachment($value);}}else if(!empty($config[‘addAttachment‘])){$mail->addAttachment($config[‘addAttachment‘]);}$mail->Subject = $config[‘subject‘];//添加該郵件的主題$mail->Body = $config[‘content‘]; //添加郵件內文 上方將isHTML設定成了true,則可以是完整的html字串 如:使用file_get_contents函數讀取本地的html檔案$status = $mail->send(); //簡單的判斷與提示資訊if($status) {echo ‘發送郵件成功‘;}else{echo ‘發送郵件失敗,錯誤資訊未:‘.$mail->ErrorInfo;}}?>

  

 

使用PHP發送email進行帳號啟用或者密碼修改操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.