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 相关文章推荐
php代码运行时间查看类代码分享
Aug 06 PHP
php多文件上传功能实现原理及代码
Apr 18 PHP
php数组去重复数据示例
Feb 25 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
php获取网站百度快照日期的方法
Jul 29 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
完美利用Yii2微信后台开发的系列总结
Jul 18 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 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
php代码书写习惯优化小结
2013/06/20 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
js 字符串操作函数
2009/07/25 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
Angular的$http与$location
2016/12/26 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
python开发环境PyScripter中文乱码问题解决方案
2016/09/11 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
详解python 中in 的 用法
2019/12/12 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
html5使用canvas画一条线
2014/12/15 HTML / CSS
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
片区教研活动总结
2014/07/02 职场文书
博士生专家推荐信
2014/09/26 职场文书
教师师德表现自我评价
2015/03/05 职场文书
JS class语法糖的深入剖析
2022/07/07 Javascript