PHP邮件发送类PHPMailer用法实例详解


Posted in PHP onSeptember 22, 2014

本文实例讲述了PHP邮件发送类PHPMailer用法,并详细讲述了其具体的操作步骤。分享给大家供大家参考。具体步骤如下:

1.在服务器安装 sendmail

sudo apt-get install sendmail

2.启动 sendmail

sudo /etc/init.d/sendmail start

3.修改 php.ini

[mail function] 
SMTP = localhost 
smtp_port = 25 
sendmail_from = me@example.com

4.Function sendMail函数如下

<?php 
/* 调用PHPMailer发送电邮 
* @param String $receiver   收件人 
* @param String $sender    发件人 
* @param String $sender_name 发件人名称如为空则用发件人地址代替 
* @param String $subject   邮件主题 
* @param String $content   邮件内容 
* @param boolean $ishtml    是否html电邮 
* @param Array  $attachements 附件 
* @return boolean 
*/ 
function sendMail($receiver, $sender, $sender_name, $subject, $content, $ishtml=true, $attachments=array()) { 
  include_once "class-phpmailer.php";  
 
  if(empty($receiver) || empty($sender) || empty($subject) || empty($content)){ 
    return false; 
  } 
   
  $mail = new PHPMailer();  
 
  //$mail->IsSMTP();        // 经smtp发送  
  //$mail->Host = "smtp.gmail.com"; // SMTP 服务器 
  //$mail->Port = 465;       // SMTP 端口 
  //$mail->SMTPSecure = 'ssl';   // 加密方式 
  //$mail->SMTPAuth = true;     // 打开SMTP认证 
  //$mail->Username = "username";  // 用户名 
  //$mail->Password = "password";  // 密码 
 
  $mail->IsMail();         // using PHP mail() function 有可能??霈F?封?件可能不是由以下使用者所?魉偷奶崾 
       
  $mail->From = $sender;      // 发信人  
  $mail->FromName = $sender_name;  // 发信人别名  
  $mail->AddReplyTo($sender);    // 回覆人 
  $mail->AddAddress($receiver);   // 收信人  
 
  // 以html方式发送 
  if($ishtml){ 
    $mail->IsHTML(true); 
  } 
 
  // 发送附件 
  if($attachments){ 
    if(is_array($attachments)){ 
      $send_attachments = array(); 
 
      $tmp_attachments = array_slice($attachments,0,1); 
      if(!is_array(array_pop($tmp_attachments))){ 
        if(isset($attachments['path'])){ 
          array_push($send_attachments, $attachments);           
        }else{ 
          foreach($attachments as $attachment){ 
            array_push($send_attachments, array('path'=>$attachment)); 
          } 
        } 
      }else{ 
        $send_attachments = $attachments; 
      } 
 
      foreach($send_attachments as $attachment){ 
        $attachment['name'] = isset($attachment['name'])? $attachment['name'] : null; 
        $attachment['encoding'] = isset($attachment['encoding'])? $attachment['encoding'] : 'base64'; 
        $attachment['type'] = isset($attachment['type'])? $attachment['type'] : 'application/octet-stream'; 
        if(isset($attachment['path']) && file_exists($attachment['path'])){ 
          $mail->AddAttachment($attachment['path'],$attachment['name'],$attachment['encoding'],$attachment['type']); 
        } 
      } 
    }elseif(is_string($attachments)){ 
      if(file_exists($attachments)){ 
        $mail->AddAttachment($attachments); 
      } 
    } 
  } 
 
  $mail->Subject = $subject; // 邮件标题 
  $mail->Body   = $content; // 邮件?热 
  return $mail->Send();  
} 
 
// DEMO示例如下: 
$receiver = 'receiver@test.com'; 
$sender = 'sender@test.com'; 
$sender_name = 'sender name'; 
$subject = 'subjecct'; 
$content = 'content'; 
 
// 四种格式都可以 
$attachments = 'attachment1.jpg'; 
$attachments = array('path'=>'attachment1.jpg', 'name'=>'附件1.jpg'); 
$attachments = array('attachment1.jpg','attachment2.jpg','attachment3.jpg'); 
$attachments = array( 
  array('path'=>'attachment1.jpg', 'name'=>'附件1.jpg'), 
  array('path'=>'attachment2.jpg', 'name'=>'附件2.jpg'), 
  array('path'=>'attachment3.jpg', 'name'=>'附件3.jpg'), 
); 
$flag = sendMail($receiver, $sender, $sender_name, $subject, $content, true, $attachments); 
echo $flag; 
?>

源码点击此处本站下载。

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

PHP 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
用PHP查询域名状态whois的类
Nov 25 PHP
使用PHP数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
国外比较好的几个的Php开源建站平台小结
Apr 22 PHP
PHP里的中文变量说明
Jul 23 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
May 30 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
php实现的CSS更新类实例
Sep 22 #PHP
php的XML文件解释类应用实例
Sep 22 #PHP
php实现的返回数据格式化类实例
Sep 22 #PHP
php实现的替换敏感字符串类实例
Sep 22 #PHP
php实现的发送带附件邮件类实例
Sep 22 #PHP
PHP实现AES256加密算法实例
Sep 22 #PHP
php生成QRcode实例
Sep 22 #PHP
You might like
在数据量大(超过10万)的情况下
2007/01/15 PHP
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
php文件缓存类汇总
2014/11/21 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
jQuery事件用法详解
2016/10/06 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
react 应用多入口配置及实践总结
2018/10/17 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
tensorflow saver 保存和恢复指定 tensor的实例讲解
2018/07/26 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
python flask搭建web应用教程
2019/11/19 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
2020/03/16 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
请说出几个常用的异常类
2013/01/08 面试题
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
学术会议欢迎词
2014/01/09 职场文书
新法人代表任命书
2014/06/06 职场文书
环保标语大全
2014/06/12 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
小学生优秀评语
2014/12/29 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis