【PHP发送邮件】PHP实现发送邮件

PHP发送邮件[Thinkphp直接使用,其他框架修改使用]
1.安装
composer require phpmailer/phpmailer
2.填写配置表

配置文件mail.php
<?php
return [
    'driver'          => 'smtp', // 邮件驱动, 支持 smtp|sendmail|mail 三种驱动
    'host'            => '', // SMTP服务器地址
    'port'            => '', // SMTP服务器端口号,一般为25
    'username'        => '', // 发件邮箱地址
    'password'        => '', // 发件邮箱密码
    'name'            => '', // 发件邮箱名称
    'content_type'    => 'text/html', // 默认文本内容 text/html|text/plain
    'charset'         => 'utf-8', // 默认字符集
    'security'        => 'ssl', // 加密方式 null|ssl|tls, QQ邮箱必须使用ssl
    'sendmail'        => '/usr/sbin/sendmail -bs', // 不适用 sendmail 驱动不需要配置
    'debug'           => true, // 开启debug模式会直接抛出异常, 记录邮件发送日志
    'left_delimiter'  => '{', // 模板变量替换左定界符, 可选, 默认为 {
    'right_delimiter' => '}', // 模板变量替换右定界符, 可选, 默认为 }
    'log_driver'      => '', // 日志驱动类, 可选, 如果启用必须实现静态 public static function write($content, $level = 'debug') 方法
    'log_path'        => '', // 日志路径, 可选, 不配置日志驱动时启用默认日志驱动, 默认路径是 /path/to/tp-mailer/log, 要保证该目录有可写权限, 最好配置自己的日志路径
    'embed'           => 'embed:', // 邮件中嵌入图片元数据标记
];

3.发送邮件代码

<?php
namespace app\api\controller;

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use think\facade\Request;

class Mail extends Common
{
    /**
     * 发送邮件
     * @return void
     */
    public function sendMail()
    {
        $to = Request::post('to');//接收人,多人传数组
        $subject = Request::post('subject');//标题
        $contents = Request::post('contents');//内容
        $mail = new PHPMailer(true);
        try{
            //服务器配置
            $mail->CharSet ="UTF-8";                     //设定邮件编码
            $mail->SMTPDebug = 0;                        // 调试模式输出
            $mail->isSMTP();                             // 使用SMTP
            $mail->Host = config('mail.host');                // SMTP服务器
            $mail->SMTPAuth = true;                      // 允许 SMTP 认证
            $mail->Username = config('mail.username');                // SMTP 用户名  即邮箱的用户名
            $mail->Password = config('mail.password');             // SMTP 密码  部分邮箱是授权码(例如163邮箱)
            $mail->SMTPSecure = config('mail.security');                    // 允许 TLS 或者ssl协议
            $mail->Port = config('mail.port');                            // 服务器端口 25 或者465 具体要看邮箱服务器支持
            $mail->setFrom(config('mail.username'));  //发件人
            if(!is_array($to)){
                $mail->addAddress($to); 
            }else{
                foreach($to as $v){
                $mail->addAddress($v); 
                }
            }
            //Content
            $mail->isHTML(true);
            $mail->Subject = $subject;
            $mail->Body    = $contents;
            $mail->AltBody = '客户端不支持查看,请转到PC端查看';

            $mail->send();
            echo '短信发送成功';
        } catch (Exception $e) {
            echo '发送失败';
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值