用過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驗證,筆者將繼續研究,繼續完善。