PHP发送邮件

in PHP with 2 comments

我当时使用的是PHPMailer-5.2版本,在更新到6.x版本以后使用方式不同了,请自行根据文档测试
或者直接使用 5.2 版本的分支


最近突然想在Centos服务器上弄一些定时任务,但是又不想一直监视,所以打算在服务器上弄一个邮件功能,这样当任务完成的时候就可以直接通过邮件给我及时发送通知。

先在github上找了一下,发现了一个开源的邮件发送模块,很欣慰
地址:https://github.com/PHPMailer/PHPMailer
目前为止该项目已经有了8884个star,据文档说明,该项目使用范围很广,包括WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla!等,更多信息你还是自己去github上看吧,不介绍了。
粗略看了一下使用起来比较简单,所以就用这个吧!

你需要一点点东西

好,开始了
以网易邮箱举例,首先你要知道如何开启SMTP (其实每个邮箱官网都会有介绍,自己去看看就好啦,这里给你几个示例)
邮箱.png

  1. 首先,先从github上下载或者使用git方式克隆下来

git clone https://github.com/PHPMailer/PHPMailer.git

  1. 下载下来应该就是一个文件夹了,然后你在文件夹外面新建一个index.php文件,目录应该如下了
  1. 然后你就在这个index.php文件里写点东西就可以了,PHPMail这个文件夹我们不需要动,因为我们需求又不高,如果只是简单发送邮件的话(笑

按照这个代码复制进去改一下就行了

<?PHP
//邮件发送
require './PHPMailer/PHPMailerAutoload.php';

    $mail = new PHPMailer;

    // $mail->SMTPDebug = 3;                               // 调试输出

    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp.163.com';                           // 这个是网易邮箱的
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'gty0211@163.com';                 // 邮箱帐号
    $mail->Password = 'password';                           // SMTP 密码(这个密码一般和邮箱登陆密码不一样)
    $mail->SMTPSecure = 'ssl';                            // 加密方式,可以设置 TLS , ssl 也可以
    $mail->Port = 465;                                    // 协议端口号,跟加密方式关联,一般是465,不行的话就一个个试试吧

    $mail->setFrom('gty0211@163.com', 'TianYu');    //发信地址,后一个是昵称
    $mail->addAddress('xxxxxxxxx@qq.com','demo');     // 收信地址,后一个是昵称
    // $mail->addAddress('xxxxxxxxx@qq.com');               // 也可以这样写,昵称不填
    // $mail->addReplyTo('info@example.com', 'Information');    //
    // $mail->addCC('cc@example.com');        //抄送
    // $mail->addBCC('bcc@example.com');        //抄送有关,反正我不用

    // $mail->addAttachment('/var/tmp/file.tar.gz');         // 添加附件地址
    // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // 添加附件,修改附件名称
    $mail->isHTML(true);                                  // 是否发送HTML格式邮件

    $mail->Subject = '这是个主题';        //主题
    $mail->Body    = '这是一个 HTML 形式的 <b> bold!</b>';    //html类型正文
    $mail->AltBody = '这是个纯文本形式的body!';    //普通形式正文

    if(!$mail->send()) {
        echo 'Message 发送失败. ';
        echo '错误信息: ' . $mail->ErrorInfo;
    } else {
        echo 'Message 已发送';
    }
  1. 然后让php执行就可以了

php index.php

或者直接访问到这个index.php项目地址,也会自动发送邮件。
好了,邮件发送到这里就已经成功了。
你也可以作死地把这个邮件发送功能嵌入到其他项目,shell,python脚本里面。

The END

Responses
  1. 评论邮件提醒已打开,测试

    Reply
    1. 哈哈
      @TianYu

      好的,回复测试

      Reply