PHP原生发送邮件

这两天琢磨了php得原生发送邮件,发现自带得mail方法不太好用,于是上网查询了好多方法,亲测以下方法能用

源代码都在 我的github

到github上下载

https://github.com/PHPMailer/PHPMailer
里面有很多文件,但是目前主要就用到两个文件
class.phpmailer.php class.smtp.php

我这个使用得是qq得smtp,如果需要其他得可以自行更改

qq的smtp服务器是:smtp.qq.com 端口号为465 或587
163smtp服务器是:smtp.163.com 端口25

下面是我进行了简单的封装

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/6/19
 * Time: 9:12
 */
class SenMail
{
    private $fromMailName='';
    private $formMailPassword='';
   private $mail='';
//密码是授权码
    function __construct($fromMailName = 'xxxxxx@qq.com', $fromMailPassword = 'xxxxxxx')
    {
        require_once('class.phpmailer.php');
        require_once('class.smtp.php');
        $this->fromMailName=$fromMailName;
        $this->formMailPassword=$fromMailPassword;
        $this->mail = new PHPMailer();
    }
    /**
     * @param string $arrayMail array集合
     * @param $senName 发件人
     * @param $title 标题
     * @param $body 内容
     */
    function sendMail($arrayMail,$senName, $title, $body)
    {
        //invoke mail() function to send mail
        // mail($toaddress, $subject, $mailcontent, $fromaddress);
        date_default_timezone_set('Asia/Shanghai');//设定时区东八区
        $fromMailPassword=$this->formMailPassword;
        $fromMailName=$this->fromMailName;
        $mail = $this->mail;
        $mail->SMTPDebug = 0;                               // Enable verbose debug output
        $mail->isSMTP();                                      // Set mailer to use SMTP
        $mail->Host = 'smtp.qq.com';  // Specify main and backup SMTP servers
        $mail->SMTPAuth = true;                               // Enable SMTP authentication
        $email = explode("@", $fromMailName);
        $mail->Username = $email[0];                 // SMTP username
        $mail->Password = $fromMailPassword;                            // SMTP password
        $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
        $mail->Port = 465;
        $mail->CharSet = 'utf-8';
//        echo $mail->Host;                                  // TCP port to connect to
        $mail->setFrom($this->fromMailName, $senName);
        // $mail->addAddress('714080794@qq.com', 'Joe User');     // Add a recipient
        foreach($arrayMail as $v) {
            $mail->addAddress($v);               // Name is optional
        }
//         $mail->addReplyTo('714034323@qq.com', 'Information');
//         $mail->addCC('714034323@qq.com');
//         $mail->addBCC('714034323@qq.com');
//         $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//         $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
        $mail->isHTML(false);                                  // Set email format to HTML
        $mail->Subject = $title;
        $mail->Body = $body;
        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
        if (!$mail->send()) {
            echo 'Message could not be sent.';
            echo 'Mailer Error: ' . $mail->ErrorInfo;
        } else {
            echo ucwords('Message has been sent');
        }
    }
}

index.php文件调用

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/6/16
 * Time: 15:15
 */
require "SenMail.php";
$e = new SenMail();
$toEmail = array('xxxx@163.com','xxxxx@qq.com');
$e->sendMail($toEmail,'xx程','测试2号','我是内容');

给新手的

开启qq邮箱的smtp

在QQ邮箱->设置->账号

密码是授权码,不是qq登录密码

遇到的问题

抛异常:Extesion missing: openssl
这个直接打开php.ini 查找 extension=php_openssl.dll 把注释去掉即可

如果哪里不对欢迎不吝赐教

最后如果对你有帮助请帮我点赞,谢谢

个人博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容