郵件發送(PHP實現)

用過PHP的人基本都知道,PHP有一個函數mail(),專門用來發送郵件,但是當你實際用過你才發現,是有多麼的費勁,你需要自己去實現SMTP服務,當前假如你想也不是不可能。
但是假如存在這麼一種簡便方法呢。藉助已有的smtp.php類就可以輕鬆的實現郵件發送。何樂而不爲呢!
代碼示例如下:
首先引入:下載smtp.php文件,下載鏈接:smtp.php

使用代碼如下:
爲了使用更簡潔,我們可以將使用方法重新封裝成一個類,這樣使得我們傳入少數幾個參數即可滿足要求。

<?php
/**
 * Author: helen
 * CreateTime: 2016/4/19 22:10
 * description: SMTP郵件發送函數
 */
include 'smtp.php'; //引入smtp類
class Mail
{

    private $_smtp_server = 'smtp.163.com';       //使用163郵箱服務器
    private $_smtp_server_port = 25;                   //端口號
    private $_smtp_email_from;                          //163郵箱賬號
    private $_smtp_email_to;                            //收件人信箱
    private $_smtp_user;                                //郵箱賬號(@163.com之前的部分)
    private $_smtp_password;                            //郵箱密碼
    private $_mail_subject;                             //郵箱主題
    private $_mail_body;                                //郵箱正文
    private $_mail_type = 'HTML';               //郵箱格式(HTML/TXT),TXT爲文本郵件

    public function __construct($email_from, $password, $email_to, $subject, $body, $debug = false)
    {

        $this->_smtp_email_from = $email_from;
        $this->_smtp_email_to = $email_to;
        $this->_smtp_password = $password;
        $this->_smtp_user = substr($email_from, 0, strpos($email_from, '@'));
        $this->_mail_subject = $subject;
        $this->_mail_body = $body;

        //調用smtp類,進行郵件發送
        //這裏面的一個true是表示使用身份驗證,否則不使用身份驗證.
        @$smtp = new smtp($this->_smtp_server, $this->_smtp_server_port, true, $this->_smtp_user, $this->_smtp_password);
        //是否顯示發送的調試信息(默認不輸出調試信息)
        if ($debug) {
            $smtp->debug = TRUE;
        }
        //發送郵件
        @$state = $smtp->sendmail($this->_smtp_email_to, $this->_smtp_email_from, $this->_mail_subject, $this->_mail_body, $this->_mail_type);
        //發送狀態
        if ($state == "") {
            echo "對不起,郵件發送失敗!請檢查郵箱填寫是否有誤。";
            exit();
        } else {
            echo "恭喜!郵件發送成功!!";
            exit();
        }

    }
}

使用示例:

<?php
/**
 * Author: helen
 * CreateTime: 2016/4/19 22:57
 * description: 測試Mail類
 */
include 'mail.class.php';

$mail_from  = '你的郵箱';
$password   = '你的郵箱密碼';
$mail_to    = '收件人郵箱';
$subject    = '郵件主題';
$body       = '郵件內容';


$mail = new Mail($mail_from,$password,$mail_to,$subject,$body);

這樣就可以實現一個簡單的郵件發送程序了,是不是很簡單。注意不要做壞事哦。

備註:利用163郵箱發送可以,但是使用QQ郵箱不可以,貌似需要什麼ssl驗證,筆者將繼續研究,繼續完善。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章