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.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
php图片的裁剪与缩放生成符合需求的缩略图
Jan 11 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
Dec 18 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
Mar 18 PHP
PHP微信刮刮卡 附微信接口
Jul 22 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 PHP
phpstudy隐藏index.php的方法
Sep 21 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
基于jquery自定义图片热区效果
2012/07/21 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
使用Python写CUDA程序的方法
2017/03/27 Python
Scrapy的简单使用教程
2017/10/24 Python
浅谈Python处理PDF的方法
2017/11/10 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
简单了解python的一些位运算技巧
2019/07/13 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
大学毕业的自我鉴定
2013/10/08 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
年终奖发放方案
2014/06/02 职场文书
同学聚会策划方案
2014/06/06 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
建议书格式
2015/02/04 职场文书
大学生个人学年总结
2015/02/15 职场文书
git stash(储藏)的用法总结
2022/06/25 Servers