当前位置: 首页 > news >正文

ThinkPHP邮件发送函数使用

转载于:http://www.thinkphp.cn/code/32.html

 

/**
 * 系统邮件发送函数
 * @param string $to    接收邮件者邮箱
 * @param string $name  接收邮件者名称
 * @param string $subject 邮件主题 
 * @param string $body    邮件内容
 * @param string $attachment 附件列表
 * @return boolean 
 */
function think_send_mail($to, $name, $subject = '', $body = '', $attachment = null){
    $config = C('THINK_EMAIL');
    vendor('PHPMailer.class#phpmailer'); //从PHPMailer目录导class.phpmailer.php类文件
    $mail             = new PHPMailer(); //PHPMailer对象
    $mail->CharSet    = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
    $mail->IsSMTP();  // 设定使用SMTP服务
    $mail->SMTPDebug  = 0;                     // 关闭SMTP调试功能
                                               // 1 = errors and messages
                                               // 2 = messages only
    $mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能
    $mail->SMTPSecure = 'ssl';                 // 使用安全协议
    $mail->Host       = $config['SMTP_HOST'];  // SMTP 服务器
    $mail->Port       = $config['SMTP_PORT'];  // SMTP服务器的端口号
    $mail->Username   = $config['SMTP_USER'];  // SMTP服务器用户名
    $mail->Password   = $config['SMTP_PASS'];  // SMTP服务器密码
    $mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);
    $replyEmail       = $config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];
    $replyName        = $config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];
    $mail->AddReplyTo($replyEmail, $replyName);
    $mail->Subject    = $subject;
    $mail->MsgHTML($body);
    $mail->AddAddress($to, $name);
    if(is_array($attachment)){ // 添加附件
        foreach ($attachment as $file){
            is_file($file) && $mail->AddAttachment($file);
        }
    }
    return $mail->Send() ? true : $mail->ErrorInfo;
}

此函数只能在ThinkPHP中使用且需要phpmailer扩展的支持;
phpmailer扩展的放置目录为 ThinkPHP/Extend/Vendor/PHPMailer/class.phpmailer.php
phpmail的下载地址:
https://code.google.com/a/apache-extras.org/p/phpmailer
使用此函数 必须在项目中加入以下配置项

//邮件配置
'THINK_EMAIL' => array(
    'SMTP_HOST'   => 'smtp.aaa.com', //SMTP服务器
    'SMTP_PORT'   => '465', //SMTP服务器端口
    'SMTP_USER'   => 'mail@aaa.com', //SMTP服务器用户名
    'SMTP_PASS'   => 'password', //SMTP服务器密码
    'FROM_EMAIL'  => 'mail@aaa.com', //发件人EMAIL
    'FROM_NAME'   => 'ThinkPHP', //发件人名称
    'REPLY_EMAIL' => '', //回复EMAIL(留空则为发件人EMAIL)
    'REPLY_NAME'  => '', //回复名称(留空则为发件人名称)
),

 

转载于:https://www.cnblogs.com/zhucheer/archive/2013/01/20/2868981.html

相关文章:

  • MATLAB 笔记,关于Filter函数的功能和使用,求simple(冲激)和unit step(阶跃)响应...
  • pku3273 Monthly Expense
  • 【ZOJ月赛】【树形DP】【I.Destroy】
  • 概要设计与详细设计的区别
  • templates of angularjs
  • wp7的数据库并发异常
  • Jquery验证输入框只能输入数字
  • 一些视频教程网站推荐
  • 利用最新的开源软件构建日志管理系统
  • Ubuntu 恢复 ctrl+f
  • 程序员,你懂的.
  • HDOJ 1133 Buy the Ticket 简单解题报告
  • java反射学习总结
  • Serial Flash
  • Visio画UML用例图没有include关系的解决方法
  • #Java异常处理
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • github指令
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • maya建模与骨骼动画快速实现人工鱼
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Node 版本管理
  • React Transition Group -- Transition 组件
  • Redis 懒删除(lazy free)简史
  • vuex 笔记整理
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 走向全栈之MongoDB的使用
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • Spring第一个helloWorld
  • 从如何停掉 Promise 链说起
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​香农与信息论三大定律
  • !!Dom4j 学习笔记
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (1)(1.9) MSP (version 4.2)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (二)WCF的Binding模型
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (蓝桥杯每日一题)love
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .Net mvc总结
  • .NET 材料检测系统崩溃分析
  • .NET 中创建支持集合初始化器的类型
  • /3GB和/USERVA开关
  • /proc/vmstat 详解
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @在php中起什么作用?