使用PHPmailer发送邮件(亲测可用)

使用PHPmailer发送邮件

下载phpmailer
https://github.com/PHPMailer/PHPMailer

打开后将
在这里插入图片描述
这几个文件导入你的项目(复制),本人使用的tp5,如下图(位置自定)
在这里插入图片描述
记得修改命名空间(都要改哈)
在这里插入图片描述
新建一个控制器

<?php
/**
 * Created by PhpStorm.
 * User: Cotary
 * Date: 2018/11/27
 * Time: 10:59
 */

namespace app\index\controller;
use app\index\model\PHPMailer;
use think\Controller;
use think\Db;

header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Credentials : true");
header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Connection, User-Agent, Cookie");

class Email extends Controller
{
    public function email()
    {
       /* ignore_user_abort(true);//关闭浏览器仍然执行
        set_time_limit(0);//让程序一直执行下去
        $interval = 3;//每隔一定时间运行
        do {
            $msg = date("Y-m-d H:i:s");
            file_put_contents("log.text", $msg, FILE_APPEND);//记录日志
            sleep($interval);//等待时间,进行下一次操作。*/
            $toemail = '543471956@qq.com';
            $name = '1274829183';
            $subject = '打撸了打撸了';
            $body = '打撸了打撸了';
            sendEmail($toemail, $subject, $body);
      /*  } while (true);*/

    }

接下来实现这个控制器里面的sendEmail()方法:

function sendEmail($tomail, $subject = '', $body = '', $attachment = null)
{
    $mail = new PHPMailer(true);
    try {
        //Server settings
        $mail->SMTPDebug = 2;                                       // Enable verbose debug output // SMTP调试功能 0=关闭 1 = 错误和消息 2 = 消息
        $mail->isSMTP();                                            // Set mailer to use SMTP
        $mail->CharSet = 'UTF-8';                                   //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
        //$mail->Host = 'smtp1.example.com;smtp2.example.com';      // Specify main and backup SMTP servers
        $mail->Host = "smtp.qq.com"; // SMTP 服务器
        $mail->SMTPAuth = true;                                     // Enable SMTP authentication
        //$mail->Username = 'user@example.com';                     // SMTP username
        // $mail->Password = 'secret';                               // SMTP password
        $mail->Username = "你的邮箱@qq.com";                          // SMTP服务器用户名
        $mail->Password = "fasdfasdfasdf";                        // SMTP服务器密码
        // $mail->SMTPSecure = 'tls';                                 // Enable TLS encryption, `ssl` also accepted
        $mail->SMTPSecure = 'ssl';                                   // 使用安全协议
        // $mail->Port = 587;                                         // TCP port to connect to\
        $mail->Port = 465;                                           // SMTP服务器的端口号

        //Recipients
        $mail->setFrom('cotary@qq.com', 'cotary');                    //发件人 地址 和 用户名
        // $mail->setFrom('from@example.com', 'Mailer');
        // $mail->addAddress('joe@example.net', 'Joe User');            // Add a recipient
        $mail->addAddress($tomail);                                    // Name is optional  收件人的地址   (用户名可选 )
        $replyEmail = 'cotary@qq.com';                                              //留空则为发件人EMAIL
        $replyName = 'cotary';                                               //回复名称(留空则为发件人名称)
        $mail->AddReplyTo($replyEmail, $replyName);
        //$mail->addReplyTo('info@example.com', 'Information');
        // $mail->addCC('cc@example.com');                              //增加一个抄送
        // $mail->addBCC('bcc@example.com');                            //增加一个密送

        // Attachments
        //$mail->addAttachment('/var/tmp/file.tar.gz');               // Add attachments   添加一个附件
        // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');          // Optional name

        // Content
        $mail->isHTML(true);                                          // Set email format to HTML
        $mail->Subject = $subject;                                     //发送的主题
        $mail->Body = $body;                                          //发送的正文
        //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';   //该属性的设置是在邮件正文不支持HTML的备用显示
        if (is_array($attachment)) { // 添加附件
            foreach ($attachment as $file) {
                is_file($file) && $mail->AddAttachment($file);
            }
        }
        $mail->send();
        echo 'Message has been sent';
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";

    }

其中 $mail->Username = “你的邮箱@qq.com”; // SMTP服务器用户名
$mail->Password = “fasdfasdfasdf”; // SMTP服务器密码 需要你去qq邮箱开启smtp的时候那个字符密码
你们使用的时候只需要改这两个东西就能用了 (还有不需要你的qq邮箱密码和qq密码,别搞错了)

备注:在这个邮箱需要你开启(不开就用不起)
ssl 和socekt
在这里插入图片描述
好了,如果不懂可以找我,cotary@qq.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值