邮件发送(PHP实现)

版权声明:欢迎转载、分享、交流! https://blog.csdn.net/helencoder/article/details/51195221

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

猜你喜欢

转载自blog.csdn.net/helencoder/article/details/51195221
今日推荐