php用phpmailer發送郵件

發送郵件php

     1.爲了保證安全性,須要生成發送到郵件的URL,主要參數(key(key 須要在每次運行是自動生成隨機碼))   而後將URL發送到郵箱。redis

     2.解析url:首先根據用戶名從數據庫中查找出密鑰key和過時時間,沒有則表示該請求 是僞造的或者過時的,而後驗證簽名,驗證過時時間,都驗證經過,就能夠修改密碼, 密碼修改完之後,刪除數據庫中的記錄。數據庫

  注:但我並無用數據庫,而是用的redis. 連接上只用一個惟一碼,根據惟一碼到redis中獲取用戶的guid,並且是3600秒後鏈接失效(redis自已處理)。安全

    $client = redis();      服務器

    $client->setex($linkkey, 7200, $userInfo['guid']);post

    要在服務器打開25端口,否則沒法發送郵件。ui

 

/**
     * 發送郵件方法
     * 
     * @param string $from 來自
     * @param string $to 收件人地址
     * @param string $subject  郵件標題
     * @param string $body 郵件正文
     */
    public function postmail($from,$to,$subject = '',$body = ''){
        error_reporting(E_ALL);
        date_default_timezone_set('Asia/Shanghai');//設定時區東八區
        vendor('PHPMailer.class#phpmailer');
        vendor('PHPMailer.class#smtp');
        $mail             = new \PHPMailer();      //new一個PHPMailer對象出來
        $body            = eregi_replace("[\]",'',$body); //對郵件內容進行必要的過濾
        $mail->CharSet ="UTF-8";                   //設定郵件編碼,默認ISO-8859-1,若是發中文此項必須設置,不然亂碼
        $mail->IsSMTP();                           // 設定使用SMTP服務
        $mail->Host       = 'smtp.ym.163.com';        // SMTP 服務器
//         $mail->SMTPDebug  = 1;                     // 啓用SMTP調試 1 = errors  2 =  messages
        $mail->SMTPAuth   = true;                  // 服務器須要驗證
        $mail->Port       = 25;                    // SMTP服務器的端口號        265/255  25
        
        $mail->Username   = '用戶名';   // SMTP服務器用戶名
        $mail->Password   = '密碼';           // SMTP服務器密碼
        $mail->isHTML(true);
        $mail->SetFrom('郵箱地址', $from);
        $mail->Subject    = $subject;
        $mail->MsgHTML($body);
        $address = $to;
        $mail->AddAddress($address, '');        
//         $mail->AddEmbeddedImage("Public/bee/common/images/logo3.jpg", "logoimg","logo.jpg"); //設置郵件中的圖片
//         $mail->AddAttachment("Public/bee/common/images/logo3.jpg"); // attachment 附件
        if(!$mail->Send()) {
            echo 'Mailer Error: ' . $mail->ErrorInfo;
        } else {
            echo "Message sent!恭喜,郵件發送成功!";
        }
    }
相關文章
相關標籤/搜索