不败君

前端萌新&初级后端攻城狮

PHP发送电子邮件

发表:2019-11-08 18:10:50

围观(364)

本文使用 PHPMailer 进行邮件发信。

PHPMailer 的开源地址:https://github.com/PHPMailer/PHPMailer/

下载 PHPMailer 后解压。本文是解压在项目根目录的 common 文件夹。

然后在根目录创建一个 PHP 文件并写入代码:

<?php
//引入 PHPMailer
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;

//引入 PHPMailer 核心文件
include_once 'common/PHPMailer/src/PHPMailer.php';
include_once 'common/PHPMailer/src/SMTP.php';
include_once 'common/PHPMailer/src/Exception.php';

//邮箱 SMTP 配置
$config = [
    //QQ邮箱的服务地址 或 网易邮箱服务地址 或其他邮件服务地址
    'host' => 'smtp.163.com',

    //设置 ssl 连接 SMTP 服务的远程服务器端口号
    'port' => 465,

    //设置发送邮件的编码
    'charset' => 'UTF-8',

    //设置发件人昵称
    'fromname' => '不败君',

    //SMTP 登录的账号 邮箱地址即可
    'username' => 'foreverbaijun@163.com',

    //SMTP 登录的密码 使用生成的授权码
    'password' => '***********',
];
 
//实例化 PHPMailer 类
$mail = new PHPMailer();

//启用或关闭 debug 调试模式 开发环境建议开启 生产环境注释掉即可
$mail->SMTPDebug = true;

//使用 SMTP 方式鉴权发送邮件
$mail->isSMTP();

//SMTP 鉴权必须是true
$mail->SMTPAuth = true;

//QQ邮箱的服务地址 或 网易邮箱服务地址 或其他邮件服务地址
$mail->Host = $config['host'];

//设置是否使用 ssl 加密方式
$mail->SMTPSecure = 'ssl';

//设置 ssl 连接 SMTP 服务的远程服务器端口号
$mail->Port = $config['port'];

//设置发送邮件的编码
$mail->CharSet = $config['charset'];

//设置发件人昵称
$mail->FromName = $config['fromname'];

//SMTP 登录的账号 邮箱地址即可
$mail->Username = $config['username'];

//SMTP 登录的密码 使用生成的授权码
$mail->Password = $config['password'];

//发件人邮箱地址 同登录账号
$mail->From = $config['username'];

//邮件正文是否为html编码 注意此处是一个方法 如果不是 HTML 请注释
$mail->isHTML(true);

//设置收件人邮箱地址
$mail->addAddress('qingchengbbj@qq.com');

//添加多个收件人 则多次调用方法即可
//$mail->addAddress('123456@163.com');

//添加该邮件的主题
$mail->Subject = '来自不败君博客的新回复';

//添加邮件正文
$mail->Body = '<h1>邮件发送测试</h1>';

//添加附件
//$mail->addAttachment('example.pdf');

//发送邮件 返回状态 true 为成功发送 false为发送失败
$status = $mail->send();

var_dump($status);

最后的返回值也就是变量 status 为 true 则是发送成功,否则就是发送失败了。发送失败可以修改代码中的

$mail->SMTPDebug = true;

开启 debug 模式,进行查阅无法发送的原因。

博主这边测试的时候在标题或者内容中加入了特殊符号,被网易那边拒绝发送了。

上面代码引入的文件地址需要根据自身项目而定。也就是 PHPMailer 解压放置的位置而定。

include_once 'common/PHPMailer/src/PHPMailer.php';
include_once 'common/PHPMailer/src/SMTP.php';
include_once 'common/PHPMailer/src/Exception.php';

一般情况下只需要设置 $config 数组里面的配置即可。

另外,还需要在 PHP.INI 中开启 openssl 配置

extension=php_openssl.dll

本文地址 : bubaijun.com/page.php?id=146

版权声明 : 未经允许禁止转载!

评论:我要评论
发布评论:
Copyright © 不败君 粤ICP备18102917号-1

不败君

首 页 作 品 微 语