PHPMailer 发送邮件

  1. PHPMailer 需要 PHP 的 sockets 扩展支持,而登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密,故 PHP 还得包含 openssl 的支持。
  2. PHPMailer 核心文件:
    在这里插入图片描述
  3. PHP扩展确认开启之后,需要开启QQ邮箱的SMTP 服务
    1). 打开qq邮箱->设置->账户
    2). 滑到页面底部,找到SMTP服务并开启
    在这里插入图片描述
    3). 发送短信验证:
    在这里插入图片描述
    4). 发送完成后点击我已发送,获取授权码:
    在这里插入图片描述
  4. 代码实例:
    注意,下面use的依赖包为必要条件,如果项目中没有包,自己composer引入,如:composer require nette/mail
<?php

namespace Controllers\Api;

use Slim\Http\Request;
use Slim\Http\Response;
use Nette\Mail\Message;
use Nette\Mail\SendmailMailer;
use Nette\Mail\SmtpMailer;

class UserController{

    // SMTP服务器
    private $server;

    // SMTP服务器的端口
    private $port;

    // SMTP服务器的用户邮箱
    private $email;

    //SMTP服务器的用户帐号
    private $username;

    //SMTP服务器的用户密码
    private $password;

    // 发件人姓名
    private $name = '';

    public function __construct($config = []) {
        $this->server = 'smtp.qq.com';
        $this->port = '465';
        $this->email = 'xxx@qq.com';
        $this->username = 'xxx@qq.com';
        $this->password = '授权码';
        $this->name = '月月';
    }

    /**
     * send: 发送邮件
     * @param string $accept 接收人
     * @param string $title 邮件标题
     * @param string $content 邮件内容
     * @return bool 发送成功返回true
     */
    public function send($accept, $title, $content) {
        $mail = new Message();
        try {
            $mail->setFrom($this->name . ' <' . $this->email . '>')
                ->addTo($accept)
                ->setSubject($title)
                ->setBody($content);

            $mailer = new SmtpMailer([
                'host'     => $this->server,
                'username' => $this->username,
                'password' => $this->password,
            ]);
            $mailer->send($mail);
            return true;
        } catch (AssertionException $e) {
            return false;
        }
    }

    public function register(Request $request, Response $response, $args){
        $email = $request->getParam('email');
        $this->send('xxx@qq.com', '测试邮件', 'hello world');
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值