thinkphp使用phpmailer发送邮件的方法

本文实例讲述了thinkphp使用phpmailer发送邮件的方法。分享给大家供大家参考。具体分析如下:

phpmailer发送邮件是php开发者首选的一个邮件发送插件了,下面我来介绍怎么集成phpmailer到thinkphp框架了,感兴趣的朋友可以参考一下。

phpmailer发送邮件功能很强大,今天真正的体验一下,这里先简单说一下配置,本人是在thinkphp中使用的.

配置步骤:

1.后台配置发送邮件类,位置admin/common/common.php中,代码如下:

复制代码 代码如下:

function sendmail($tomail,$title,$content) 

/*邮件设置信息*/ 
        $email_set = C('EMAIL_SET'); 
        Vendor('phpmailer.class#phpmailer'); 
        Vendor("phpmailer.class#smtp"); //可选,否则会在class.phpmailer.php中包含 
         
        $mail = new PHPMailer(true); //实例化PHPMailer类,true表示出现错误时抛出异常 
         
        $mail->IsSMTP(); // 使用SMTP 
          $mail->CharSet ="UTF-8";//设定邮件编码 
          $mail->Host       = $email_set['Host']; // SMTP server 
          $mail->SMTPDebug  = 1;                     // 启用SMTP调试 1 = errors  2 =  messages 
          $mail->SMTPAuth   = true;                  // 服务器需要验证 
          $mail->Port       = $email_set['port'];                    // 设置端口 
         // $mail->SMTPSecure = "ssl";      
            /* 
            $mail->SMTPSecure = "ssl";                  
            $mail->Host       = "smtp.gmail.com";      
            $mail->Port       = 465;                   
            */ 
         
          $mail->Username   = $email_set['email_user']; //SMTP服务器的用户帐号 
          $mail->Password   = $email_set['email_pwd'];       //SMTP服务器的用户密码 
          $mail->AddReplyTo($email_set['email'],$email_set['email_name']); //收件人回复时回复到此邮箱,可以多次执行该方法 
          if (is_array($tomail)){ 
              foreach ($tomail as $m){ 
                   $mail->AddAddress($m, 'user');  
              } 
          }else{ 
              $mail->AddAddress($tomail, 'user'); 
          } 
          
          $mail->SetFrom($email_set['email'],$email_set['email_name']); 
        // $mail->AddAttachment('./img/phpmailer.gif');      // 添加附件,如果有多个附件则重复执行该方法 
          $mail->Subject = $title; 
         
          //以下是邮件内容相关 
          $mail->Body = $content; 
          $mail->IsHTML(true); 
         
          //$body = file_get_contents('tpl.html'); //获取html网页内容 
         // $mail->MsgHTML(eregi_replace("[]",'',$body));

return $mail->Send()? true:false; 
}

2:配置文件中配置参数,代码如下:

复制代码 代码如下:

/*邮件设置*/ 
    'EMAIL_SET'=>array( 
       'Host'=> "smtp.163.com", 
       'Port'=>'25', 
       'email_user'=>'liuying', 
       'email_pwd'=>'123456', 
       'email'=>'jb51@163.com', 
       'email_name'=>'jb51我们', 
)

3.测试发送代码,代码如下:

复制代码 代码如下:

sendmail('11234@126.com','您好','这里是内容');

希望本文所述对大家的PHP程序设计有所帮助。

时间: 2014-11-21

PHPMailer使用教程(PHPMailer发送邮件实例分析)

php虽然提供了mail()函数,但并不好用,而PHPMailer是一个不错的邮件发送工具,使用起来也是非常简单! 使用PHPMailer发送邮件: 复制代码 代码如下: <?php header("content-type:text/html;charset=utf-8"); ini_set("magic_quotes_runtime",0); require 'class.phpmailer.php'; try { $mail = new PHPMaile

PHP使用PHPMailer发送邮件的简单使用方法

最近需要用到发送邮件的功能,原本是用PHP自带的mail()函数发送的.php mail()这个方法非常简单.方便.易用,但是除了网易邮箱.QQ邮箱.GMAIL邮箱等常用的邮箱可以收到之外,经测试HOTMAIL.TOM.LIVE等邮箱是收不到此类邮件的.所以就转而使用PHPMailer这个强大的邮件发送类.使用官方自带的一些例子,有些会报 Mailer Error: Could not instantiate mail function. 这个错误.参考了一些资料之后,还是自己写了一个方法.代码

php多种形式发送邮件(mail qmail邮件系统 phpmailer类)

1. 使用 mail() 函数 没什么好讲的,就是使用系统自带的smtp系统来发送,一般是使用sendmail来发.这个按照各个系统不同而定.使用参考手册. 2. 使用管道的形式 昨天刚测试成功,使用本地的qmail来发送邮件. 复制代码 代码如下: /* 使用qmail发送邮件函数 */  function send_check_mail($email, $subject,$uid,$buffer)  {   $command =  "/var/qmail/bin/qmail-inject &

PHPMailer邮件类利用smtp.163.com发送邮件方法

第一步:需要下载PHPMailer文件包phpmailer-1.73.tar.gz 来自开源社区: http://phpmailer.sourceforge.net/ 第二步:确认你的服务器系统已经支持socket 如下图,通过phpinfo();查看是否支持sockets 如果没有这一项就请注意: socket 是属于PHP扩展部分,编译时必须给定一个用于./configure --enable-sockets 的配置选项. 第三步:把文件解压到你的web服务器目录下,调用类就可以了,说明:首

PHP借助phpmailer发送邮件

本地没有发邮件的服务器,借助现成的SMTP服务器发送邮件是个不错的选择,这里使用到的工具是phpmailer ( Version 5.2.0),SMTP服务器就选gmail和163. 1. 使用gmail发送的脚本 include("class.phpmailer.php"); include("class.smtp.php"); //获取一个外部文件的内容 $mail = new PHPMailer(); $body = file_get_contents('co

phpmailer在服务器上不能正常发送邮件的解决办法

phpmailer本身是一个很不错的开源邮件类,也非常的易用简单,就是偶尔会出现程序上传到服务器上不能发送邮件的情况,在之前也有同学问过我这个问题,当时的时候总是不以为然,今天终于让我碰上了,用phpmailer 在本地测试正常,上传到服务器上就不行了,当然了是用的SMTP方式,最终确定是fsockopen 函数惹的祸,因为安全原因fsockopen 和pfsockopen 经常被服务器端关闭.解决方法如下: 而代之的应该是 stream_socket_client()函数,不过他的参数有一点不

phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法

很多人在使用phpmailer发送邮件之后,都想知道对方是否阅读了邮件?通常来说,这个我们是无法知道的,那么有没有办法呢? 对于这个问题有一个简单的解决方法,我们知道,邮件内容可以以html 的形式发送,我们可以在内容中插入图片,那么关键就在这个图片里面了. 假设我们的邮件内容是这样的: 文件content.php代码如下: <table width="555" height="50" border="0" align="cent

phpmailer发送邮件功能

PHP内置的mail函数使用起来不够方便,另外受其他语言的影响,博主更偏好面向对象的包管理模式,因此phpmailer成为了我用PHP发送邮件的首选,这里分享给大家. 库导入 这里使用composer进行包管理,以下是json文件: { "name": "", "description": "test the mail", "require": { "PHPMailer/PHPMailer&quo

phpmailer简单发送邮件的方法(附phpmailer源码下载)

本文实例讲述了phpmailer简单发送邮件的方法.分享给大家供大家参考,具体如下: 首先,点击此处本站下载相应的php文件. 解压后有2个php文件(2个类)  1个html文件(API) 将2个php文件放到php项目中 简述:我这里是用一个163的邮箱发消息给126的邮箱 关键代码如下: <?php require 'class.phpmailer.php'; $mail = new PHPMailer(true); //建立邮件发送类 $mail->CharSet = "UT

Linux服务器下PHPMailer发送邮件失败的问题解决

需求 更换服务器之后,我发现我的发送邮件功能失效了!原来的服务器是可以的,一定是哪里出问题了,决定来排查一下.我是用的PHPMailer,SMTP方式发送邮件的. 排查过程 这种方式首先PHP要开启sockets拓展,查了一下phpinfo页面,是开启的: 看了一下openssl也是开启(因为拿了qq邮箱来测),所以没问题: 那就再看一下allow_url_fopen,开启的,没问题: 是不是禁用了函数?没有禁用,没问题: 那配置上就没有问题了,我就想,是不是端口被占用了? 运行一下:netst

linux服务器下配置多tomcat实现实例

linux服务器下配置多tomcat 车辆交易用的系统模块,正在做.老板要看看,以便车城那边的人提出意见.于是在服务器上再次增加一个tomcat. 以前是配置过的,配置过程其实很简单,这次太大意了,找了半天问题. 首先是拷贝一个tomcat,放到一个新的位置,这个tomcat就是我要用的新的tomcat. 然后去配置一下日志的输出位置,在bin目录下的catalia.sh或者startup.sh.网上怎么样配置的都有,呵呵. 然后修改server.xml,配置好虚拟目录和端口信息.在此,conn

在linux服务器下使用版本控制软件SVN的方法

1.首先安装svn rpm包 查找rpm包里存在的版本,使用命令yum install sunversion...((根据package包里面存在的安装文件版本) 在linux服务器上建立SVN文件夹,个人创建在/usr/local/下: mkdir /usr/local/svn 在svn下创建项目管理目录blog: svnadmin create blog 2.启动SVN服务 svnserve -dr /usr/local/svn 个人电脑安装svn客户端,在指定文件夹下svn checkou

Linux服务器下Nginx与Apache共存的实现方法分析

本文实例讲述了Linux服务器下Nginx与Apache共存的实现方法.分享给大家供大家参考,具体如下: 同一个端口是不能同时有两个程序监听的.所以换个思路解决同一台服务器下某些网站运行在nginx下,某些网站运行在Apache下共存. 解决思路: 将nginx作为代理服务器和web服务器使用,nginx监听80端口,Apache监听除80以外的端口,我这暂时使用8080端口. 解决方案: 在Linux 一经搭建好环境 先后安装了Nginx 和Apache 由于 默认端口都是:80 一般客户请求

在Linux 服务器下修改防火墙允许该端口远程访问的方法

1.问题描述 出于安全考虑,新搭建的服务器集群只开放指定几个端口,但是端口开放以后依然无法远程访问,后经过查找问题发现是防火墙需要对端口进行开放,所以使用如下命令修改防火墙允许端口远程访问 2.解决方法 使用命令行执行语句如下: firewall-cmd --zone=public --add-port=<strong>80/tcp</strong> --permanent firewall-cmd --reload 以上这篇在Linux 服务器下修改防火墙允许该端口远程访问的方法

Linux服务器下安装配置Nginx的教程

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. 在高连接并发的情况下,Nginx是Apache服务器不错的替代品. Nginx 安装 一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 二.首先要安装 PCRE PCRE 作用是让 N

linux服务器下PHPCMS v9 安全配置详解

一.目录权限设置很重要:可以有效防范黑客上传木马文件. 如果通过 chmod 644 * -R 的话,php文件就没有权限访问了. 如果通过chmod 755 * -R 的话,php文件的权限就高了. 所以就需要分开设置目录权限和文件权限: linux 服务器权限:经常要用到的命令: find /path -type f -exec chmod 644 {} \; //设置文件权限为644 find /path -type d -exec chmod 755 {} \; //设置目录权限为755

Linux服务器下利用Docker部署.net Core项目的全过程

发布ASP.NET Core项目 和普通的项目发布一样,将项目发布到目标文件夹中 构建Dockerfile文件 在目标文件根目录新建Dockerfile文件(没有后缀) FROM microsoft/dotnet//基于'microsoft/dotnet' 来构建镜像 COPY . /app //拷贝项目文件夹中的所有文件到docker容器中的app文件夹 这里是两个参数 WORKDIR /app //设置工作目录为 '/app' 文件夹,即容器启动默认的文件夹 EXPOSE 80 //设置Do

Linux服务器下nginx的安全配置详解

Nginx是一个轻量级,高性能的Web服务器/反向代理和电子邮件 代理(IMAP/POP3),它可以运行在UNIX,GNU/Linux,BSD变种,MAC OS X,Solaris和Microsoft Windows上.根据Netcraft的调查数据显示,互联网上6%的域名都使用了Nginx Web服务器.Nginx是解决C10K问题的服务器之一,与传统服务器不一样,Nginx不依赖于线程处理请求,相反,它使用了一个更具扩展性的事件驱 动(异步)架构.Nginx在很多高流量网站上得到了应用,如W

linux服务器下LNMP安装与配置方法

Nginx与apache.lighttp性能综合对比,如下图: 注意:关闭rpm默认安装的apache和mysql 1.准备php函数的rpm包 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel b