用过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验证,笔者将继续研究,继续完善。