1.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的下载地址:
http://sourceforge.net/projects/phpmailer/files/

然后下载 Download PHPMailer_v5.1.zip (111.7 kB)
使用此函数 必须在项目中加入以下配置项

//邮件配置
'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' => '', //回复名称(留空则为发件人名称)
),

2.发送邮件更简单版,具体来自内容请参考 ThinkPHP 中使用 PHPMailer 发送邮件(支持163、QQ邮箱,附下载)

3.解决smtp server connect failed(连接smtp服务器失败)

Using WampServer 2.2 I just edit php.ini in C:\wamp\bin\php\php5.3.13 then uncommentextension=php_openssl.dll

(使用的是wamp集成环境,所以要到具体的目录下面看php.ini中

;extension=php_openssl.dll

前面的分号是否去除了),xampp的也是修改php.ini文件

解决smtp服务器连接不上

  • 添加 C:\PHP\ext 到系统变量中,具体根据你php安装路径为准
  • 将 php 根目录下的 libeay32.dll,ssleay32.dll 两个文件 复制到 C:\WINDOWS\system32 中
  • 重启服务器

参考了:Socket transport “ssl” in PHP not enabled

Thinkphp 使用gmail发送邮件的更多相关文章

  1. 使用Gmail发送邮件心得

    /// <summary> /// 发送邮件 /// </summary> /// <returns></returns> public static ...

  2. thinkphp 3.2 发送邮件(Phpmailer)

    1.在该模板下Conmon模块函数公共目录新建一个function.php <?php function Sendemail(){ vendor('PHPMailer.class#phpmail ...

  3. thinkphp使用PHPMailer发送邮件

    第一步:准备PHPMailer 使用PHPMailer发送邮件,首先下载个PHPMailer 将下载的PHPMailer放到ThinkPHP文件夹里面的ThinkPHPExtendVendor 第二步 ...

  4. 使用php+gmail 发送邮件

    <?php namespace app\index\controller; use think\Controller; use PHPMailer\PHPMailer; class Test e ...

  5. SpringBoot 2.x 集成QQ邮箱、网易系邮箱、Gmail邮箱发送邮件

    在Spring中提供了非常好用的 JavaMailSender接口实现邮件发送,在SpringBoot的Starter模块中也为此提供了自动化配置. 项目源码已托管在Gitee-SpringBoot_ ...

  6. 《PHP发送邮件PHPMailer》系列分享专栏

    <PHP发送邮件PHPMailer>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201726.html 文章 PHPMailer ...

  7. 利用PHPMailer发送邮件时报错

    利用thinkphp集成PHPMailer发送邮件时报错:Failed to connect to server: Unable to find the socket transport “ssl” ...

  8. phpmailer 发送邮件(一)

    phpmailer下载地址: PHPMailer : https://github.com/PHPMailer/PHPMailer 一.基本要求 Web访问正常(apache可以正常访问) php 设 ...

  9. PHPMailer发送邮件(一)

    Github 地址:(已更新,适用于旧版) PHPMailer : https://github.com/PHPMailer/PHPMailer 一.基本要求 Web访问正常(apache可以正常访问 ...

随机推荐

  1. bzoj 2816: [ZJOI2012]网络(splay)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2816 [题意] 给定一个无向图,满足条件:从一个节点出发的同色边不超过2条,且不存在同 ...

  2. 稀疏表示(sparse representation)和字典学习

    近十几年来,稀疏(sparsity)已经成为信号处理及其应用领域中处于第一位的概念之一.近来,研究人员又致力于过完备(overcomplete)信号表示的研究.这种表示不同于许多传统的表示.因为它能提 ...

  3. Java Script after Douglas Crockford's Training (JSON father)

    有幸能参加大牛的培训,学到了很多东西,下面总结一下: 1.总的思想是每一门语言都有好有坏,我们要通过好的代码规范和其他一些方式去避免使用糟糠的那一部分.JS有很多缺点,但是也有很多优点,我们就用他的优 ...

  4. 在iptables中添加vnc访问规则

    iptables -I INPUT -p tcp --dport 5800|5900|5801|5901 -j ACCEPT service iptales save

  5. Linux 中/etc/profile、~/.bash_profile 等几个环境配置文件的执行过程

    环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell.对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell.对于UNIX,可能是CShelll.环境变量是通过 ...

  6. jexus asp.net Linux Web Server

    Jexus简介 Jexus web server for linux 是运行在Linux上的Web服务器.其安装和部署及其简单,直接支持Asp.net . 下载Jexus wget http://li ...

  7. 转载Entity Framework全面教程

    转载原地址:http://www.cnblogs.com/lsxqw2004/archive/2009/05/31/1495240.html#_Toc228672754 预备知识    2 LINQ技 ...

  8. mac不可或缺的套件管理器Homebrew

    Homebrew 1.简介 可以帮助我们快速安装软件, 如 brew install svn 快速卸载软件 , 如  brew uninstall svn 2.下载 打开终端, /usr/bin/ru ...

  9. cocos2d_x_08_游戏_FlappyBird

    终于效果图: 环境版本号:cocos2d-x-3.3beta0 使用内置的物理引擎 计时器没有加入,可參考[cocos2d_x_06_游戏_一个都不能死] 主场景 // // FlappyBirdSc ...

  10. careercup-C和C++ 13.5

    13.5 谈谈C语言关键字”volatile”的意义(或重要性)? 解答 关键字volatile的作用是指示编译器,即使代码不对变量做任何改动,该变量的值仍可能被外界修改.操作系统.硬件或其他线程都可 ...