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面向对象全攻略 (十六) 对象的串行化
Sep 30 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
PHP加密函数 Javascript/Js 解密函数
Sep 23 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
php分页查询的简单实现代码
Mar 14 PHP
PHP面向对象类型约束用法分析
Jun 12 PHP
php提高脚本性能的4个技巧
Aug 18 PHP
用php如何解决大文件分片上传问题
Jul 07 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
ajax 的post方法实例(带循环)
2011/07/04 PHP
用PHP实现的四则运算表达式计算实现代码
2011/08/02 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
javascript读取xml
2006/11/04 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
python新手经常遇到的17个错误分析
2014/07/30 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
分析Python读取文件时的路径问题
2018/02/11 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
python中pivot()函数基础知识点
2021/01/03 Python
python 模块导入问题汇总
2021/02/01 Python
大学生专业个人学习的自我评价
2013/10/26 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
人事文员岗位职责
2015/02/04 职场文书
安全教育日主题班会
2015/08/13 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
零基础学java之循环语句的使用
2022/04/10 Java/Android
git中cherry-pick命令的使用教程
2022/06/25 Servers
Java 多线程并发FutureTask
2022/06/28 Java/Android