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的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
PHP 读取Postgresql中的数组
Apr 14 PHP
php中如何防止表单的重复提交
Aug 02 PHP
php中生成随机密码的自定义函数代码
Oct 21 PHP
php中利用explode函数分割字符串到数组
Feb 08 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 PHP
php DES加密算法实例分析
Sep 18 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 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
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
php简单实现MVC
2015/02/05 PHP
php实现异步数据调用的方法
2015/12/24 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
分析python服务器拒绝服务攻击代码
2014/01/16 Python
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
社区工作感言
2014/02/21 职场文书
《海底世界》教学反思
2014/04/16 职场文书
天猫活动策划方案
2014/08/21 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
入党转正申请报告
2015/05/15 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python