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 array_push 数组函数
Dec 26 PHP
PHP session会话的安全性分析
Sep 08 PHP
PHP的加密方式及原理
Jun 14 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
浅谈php冒泡排序
Dec 30 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
php登录超时检测功能实例详解
Mar 21 PHP
Laravel监听数据库访问,打印SQL的例子
Oct 24 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
mysql中存储过程、函数的一些问题
2007/02/14 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
js 页面输出值
2008/11/30 Javascript
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
Python import用法以及与from...import的区别
2015/05/28 Python
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
python PyTorch预训练示例
2018/02/11 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
python同时遍历两个list用法说明
2020/05/02 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
.NET面试10题
2014/02/24 面试题
心得体会怎么写
2013/12/30 职场文书
CAD制图设计师自荐信
2014/01/29 职场文书
安踏广告词改编版
2014/03/21 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
公司员工培训管理制度
2015/08/04 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
python双向链表实例详解
2022/05/25 Python