PHPMailer发送邮件

简介: PHPMailer是一个用于发送电子邮件的PHP类库,可以应用在激活邮件、找回密码等场景。本博文只要把PHPMailer结合到Tp框架。

准备工作

下载地址

https://github.com/Synchro/PHPMailer

代码目录

screenshot

简单实例

header("Content-type:text/html;charset=utf-8");
require './PHPMailerAutoload.php';

$mail = new PHPMailer;

// 启用详细调试输出
// $mail->SMTPDebug = 3;                                    
// 设置报错提示语言
$mail->SetLanguage('zh_cn','./language/phpmailer.lang-zh_cn.php');
// 使用SMTP 
$mail->isSMTP();                                           
// 指定SMTP服务器 可以指定多个,用,分割                   
$mail->Host = 'smtp.sina.com';  
// 使SMTP认证
$mail->SMTPAuth = true;         
// SMTP 账号
$mail->Username = 'phpmail570@sina.com';    
// SMTP 密码
$mail->Password = '*********';   
// 加密方式 TLS或ssl  根据smtp服务器商定
$mail->SMTPSecure = 'ssl';   
// TCP端口连接 根据smtp服务器商定
$mail->Port = 465;     
// 设置显示字符集
$mail->CharSet = "utf-8";          
// 设置发件人地址
$mail->setFrom('phpmail570@sina.com', 'phpmail570');
// 增加一个收件人地址(邮件目的地址).
$mail->addAddress('570227234@qq.com', '尊敬的客户');     
$mail->addAddress('php570@126.com', '尊敬的客户');   
// 增加一个回复地址(别人回复时的地址).
$mail->addReplyTo('phpmail570@sina.com', 'phpmail570');  
// 抄送地址
// $mail->addCC('php570@126.com');        
// 密送地址
// $mail->addBCC('php570@126.com');                         
// 添加附件 不能是中文
$mail->addAttachment('./file/abc.zip');   
// 设置邮件正文格式为 HTML
$mail->isHTML(true);                                       

$mail->Subject = '邮件主题';                        
$mail->Body    = '<h1>邮件正文</h1>
                 <p>
                 <img src="https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1453658608&di=e0d1682292c36dce638a5a5f5efc77af&src=http://pic.58pic.com/58pic/15/66/29/76Y58PICik6_1024.jpg">
                 </p>'; 
$mail->AltBody = '纯文本正文,不支持HTML的备用显示';  

//发送邮件, 并且判断是否成功
if(!$mail->send()) {
    echo '邮件发送失败';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo '邮件发送成功 !';
}

PHPMailer与tp框架整合

添加到第三方类库

把PHPMailer 核心文件复制到ThinkPHP/Library/Vendor/PHPMailer

screenshot

初始化 PHPMailer

在Application/Common/Common/function.php 写入以下代码

/**
 * [sendMail 发送邮件函数]
 * @author 邱关友 
 * @copyright 起点工作室 
 * @version [V1.0版本] 
 * @date 2016-01-26
 * @param  [type] $to        [接收邮箱]
 * @param  [type] $toname    [接收姓名]
 * @param  [type] $title     [邮件标题]
 * @param  [type] $content   [邮件正文]
 * @param  string $enclosure [邮件附件]
 * @return [type]            [成功,返回true 失败返回false]
 */
function sendMail($to,$name,$title,$content,$enclosure=''){

    Vendor('PHPMailer.PHPMailerAutoload');  
    $mail = new PHPMailer;
    //使用SMTP 
    $mail->isSMTP();      
    //指定SMTP服务器 可以指定多个,用,分割                                                        
    $mail->Host = C('MAIL_HOST');              
    //使SMTP认证            
    $mail->SMTPAuth = C('MAIL_SMTP_AUTH'); 
    //SMTP 账号                                   
    $mail->Username = C('MAIL_USER_NAME');        
    //SMTP 密码         
    $mail->Password = C('MAIL_PASSWORD');      
    //加密方式 TLS或ssl  根据smtp服务器商定                     
    $mail->SMTPSecure = C('MAIL_SMTP_SECURE');    
    //TCP端口连接 根据smtp服务器商定        
    $mail->Port = C('MAIL_PORT');                                        
    $mail->CharSet = C('MAIL_CHAR_SET');                                
    $mail->setFrom(C('MAIL_SET_FROM'), C('MAIL_SET_FROM_NAME'));
    //增加一个收件人地址(邮件目的地址).
    $mail->addAddress($to, $toname);    
    //添加附件 不能是中文
    $mail->addAttachment($enclosure);  
    //设置电子邮件格式为 HTML                
    $mail->isHTML(true);    
    //邮件主题                                   
    $mail->Subject = $title;    
    //邮件正文                    
    $mail->Body    = $content; 
    $mail->AltBody = '纯文本正文,不支持HTML的备用显示';  
    //发送邮件
    return $mail->send();
}

配置邮件发送服务器

在./Application/Common/Conf/config.php 写 入PHPMailer 配置信息。

//smtp服务器的名称
'MAIL_HOST' =>'smtp.sina.com',
//启用smtp认证
'MAIL_SMTP_AUTH' =>TRUE,
//你的邮箱名
'MAIL_USER_NAME' =>'phpmail570@sina.com',
//邮箱密码
'MAIL_PASSWORD' =>'******',
//加密方式
'MAIL_SMTP_SECURE'=>'ssl',
//端口
'MAIL_PORT'=>465,
//设置邮件编码
'MAIL_CHAR_SET'=>'utf-8',
//发件人地址
'MAIL_SET_FROM' =>'phpmail570@sina.com',
//发件人姓名
目录
相关文章
|
2月前
|
IDE PHP 开发工具
PhpStorm 2025.1安装教程 Windows版:详细步骤+安装路径修改
PhpStorm 2025.1 是专为PHP开发打造的智能IDE,深度支持Laravel、Symfony等主流框架,集成智能补全、重构、远程调试及Composer/PHPUnit工具,安装激活教程详尽易操作。(239字)
|
SQL 关系型数据库 MySQL
解决MySQL主从慢同步问题的常见的解决方案:
解决MySQL主从慢同步问题的方法有很多,以下是一些常见的解决方案: 1. 检查网络连接:确保主从服务器之间的网络连接稳定,避免网络延迟或丢包导致数据同步缓慢。 2. 优化数据库配置:调整MySQL的配置参数,如增大binlog文件大小、调整innodb_flush_log_at_trx_commit等参数,以提高主从同步性能。 3. 检查IO线程和SQL线程状态:通过SHOW SLAVE STATUS命令检查IO线程和SQL线程的状态,确保它们正常运行并没有出现错误。 4. 检查主从日志位置:确认主从服务器的binlog文件和位置是否正确,避免由于错误的日志位置导致同步延迟。 5.
1912 1
|
API PHP
PHP使用jwt生成token,做api的用户认证firebase/php-jwt
PHP使用jwt生成token,做api的用户认证firebase/php-jwt
889 0
|
3月前
|
人工智能 自然语言处理 API
OpenClaw(Clawdbot)零基础部署指南+OpenClaw Skills 官方技能解析,1条命令解锁全能AI
OpenClaw的核心魅力在于其开放的技能生态——ClawHub上数千款官方Skills覆盖办公、生活、开发、智能家居等30+领域,让AI从“聊天工具”升级为“全能执行者”。而阿里云的一键部署方案,更让零基础用户无需复杂配置,20分钟即可搭建稳定运行环境,再通过简单命令安装官方Skills,轻松实现密码管理、笔记同步、邮件处理、视频编辑等多样化需求。
1909 10
|
12月前
|
JSON 自然语言处理 Kubernetes
MindIE PD分离部署Q&A
使用mindie进行PD分离部署
710 28
域名备案
阿里云账号实名认证与域名实名认证可以不一致,备案针对域名实名认证。一个阿里云账号只能有一个备案主体,且主体只能在一个账号上。域名、服务器和备案主体所在账号可以不同,但可通过服务器账号生成备案服务码授权给备案主体账号进行备案。
959 3
|
运维 数据管理 数据库
数据管理DMS产品使用合集之遇到报错:数据库账号没有权限执行,该如何排查
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
365 2
|
关系型数据库 数据库 文件存储
【赵渝强老师】PostgreSQL的表空间
本文介绍了PostgreSQL中的表空间概念及其操作方法,包括查看现有表空间、创建新表空间、在特定表空间上创建表、设置默认表空间以及查询表空间信息等步骤,并提供了相应的命令示例。
684 1
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
Android开发 C++
【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )(二)
【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )(二)
2132 0
【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )(二)