使用PHPMailer发送邮件实例

 更新时间:2017年7月6日 23:49  点击:1826
小编推荐的这篇文章介绍了使用PHPMailer发送邮件实例,非常实用,有兴趣的同学快来看看吧。

PHPMailer类源代码下载地址:https://github.com/PHPMailer/PHPMailerhttps://github.com/PHPMailer/PHPMailer

 

 代码如下 复制代码

<?php

/*

to:  邮件接收地址

subject: 邮件主题

body: 邮件内容

attachpath:附件地址

cc: 邮件抄送地址

bcc: 邮件暗抄送地址

*/

functionsend_mail($to,$subject="",$body="",$attachpath="",$cc="",$bcc="")

{

 // 对邮件内容进行必要的过滤

 $body=eregi_replace("[\]",'',$body); 

  

 // 设定时区

 date_default_timezone_set("PRC");

  

 require_once('class.phpmailer.php');

 require_once("class.smtp.php");

  

 // 实例化PHPMailer对象

 $mail=newPHPMailer();    

  

 // 设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置为 UTF-8

 $mail->CharSet ="UTF-8";

  

 // 设定使用SMTP服务

 $mail->IsSMTP();

  

 // 启用 SMTP 验证功能

 $mail->SMTPAuth = true;

  

 // SMTP 安全协议

 $mail->SMTPSecure ="ssl";

  

 // SMTP 服务器

 $mail->Host ="smtp.qq.com";

  

 // SMTP服务器的端口号

 $mail->Port = 465;

  

 // SMTP服务器用户名和密码

 $mail->Username ="xxxxxx@qq.com"; 

 $mail->Password ="xxxxxx";  

  

 // 设置发件人地址和名称,名称可有可无

 $mail->SetFrom("xxxxxx@qq.com","xxxxxx");

  

 // 设置邮件接收地址和名称,第二个参数无所谓。必须用AddAddress添加邮件接收地址。AddReplyTo方法没什么用。

 //$mail->AddReplyTo("xxxxxx@163.com", "xxxxxx");

 $mailaddrs= split(",",$to);

 foreach($mailaddrsas$addres)

 {

 //校验邮箱地址是否合法

 if(filter_var($addres, FILTER_VALIDATE_EMAIL))

 {

  $mail->AddAddress($addres); 

 }

 }

  

 // 设置邮件抄送地址

 if($cc!="")

 {

 $ccaddrs= split(",",$cc);

 foreach($ccaddrsas$ccaddr)

 {

  //校验邮箱地址是否合法

  if(filter_var($ccaddr, FILTER_VALIDATE_EMAIL))

  {

  $mail->addCC($ccaddr); 

  }

 }

 }

  

 // 设置邮件暗抄送地址,私密发送

 if($bcc!="")

 {

 $bccaddrs= split(",",$bcc);

 foreach($bccaddrsas$bccaddr)

 {

  //校验邮箱地址是否合法

  if(filter_var($bccaddr, FILTER_VALIDATE_EMAIL))

  {

  $mail->addBCC($bccaddr); 

  }

 }

 }

  

 // 设置邮件主题

 $mail->Subject =$subject;

  

 // 可选项,向下兼容考虑

 $mail->AltBody ="为了查看该邮件,请切换到支持 HTML 的邮件客户端";

  

 // 设置邮件内容

 $mail->MsgHTML($body);    

  

 //使用HTML格式发送邮件

 $mail->IsHTML(true);

  

 // 添加附件,第一个参数是附件地址,第二个参数附件名

 //$mail->AddAttachment("images/phpmailer.gif");

 $mail->AddAttachment($attachpath);

  

 // 发送邮件

 if(!$mail->Send())

 {

 echo"发送失败:".$mail->ErrorInfo . PHP_EOL;

 }

 else

 {

 echo"恭喜,邮件发送成功!". PHP_EOL;

 }

}

$emailAddr="xxxxxx@163.com,xxxxxx@qq.com,";

send_mail($emailAddr,"测试邮件","<h1>使用PHPMailer类发送的邮件。</h1>","mail/20170216.gif","xxxxxx@qq.com","");

?>

 

测试结果:

说明:第44行的SMTP服务器密码为qq邮箱授权码。

登录QQ邮箱->设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->生成授权码

小编给大家推荐的这篇文章介绍了php使用GD2绘制几何图形示例,非常实用,有兴趣的同学快来看看吧。

使用GD2函数不仅可以绘制线条图形,而且可以绘制填充图形,如填充圆形,填充矩形等。下面对GD2中常用的填充图形的绘制方法进行介绍。

bool imagefill( resource image, int x, int y, int color )

imagefill()函数在image图像的坐标( x, y ) (图像的左上角为(0,0))处用color颜色执行区域填充(即与(x,y)点颜色相同切相邻的点都会被填充)。

bool imagefilledarc ( resource image , int cx , int cy , int w , int h , int s , int e , int color , int style )

imagefilledarc() 在 image 所代表的图像中以 cx,cy(图像左上角为 0, 0)画一椭圆弧。成功时返回 TRUE,  或者在失败时返回 FALSE.w 和 h 分别指定了椭圆的宽和高,s 和 e 参数以角度指定了起始和结束点。style  可以是下列值按位或(OR)后的值:

IMG_ARC_PIE
IMG_ARC_CHORD
IMG_ARC_NOFILL
IMG_ARC_EDGED

IMG_ARC_PIE 和 IMG_ARC_CHORD 是互斥的;IMG_ARC_CHORD  只是用直线连接了起始和结束点,IMG_ARC_PIE  则产生圆形边界(如果两个都用,IMG_ARC_CHORD生效)。IMG_ARC_NOFILL  指明弧或弦只有轮廓,不填充。IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连,和 IMG_ARC_NOFILL  一起使用是画饼状图轮廓的好方法(而不用填充)。

bool imagefilledellipse ( resource image , int cx , int cy , int w , int h , int color )

imagefilledellipse() 在 image 所代表的图像中以 cx,cy(图像左上角为 0, 0)为中心画一个椭圆。w 和 h 分别指定了椭圆的宽和高。椭圆用 color 颜色填充。成功时返回 TRUE, 或者在失败时返回 FALSE.

bool imagefilledrectangle( resource image, int x1, int y1, int x2, int y2, int color )

该函数在image图像中绘制一个用color颜色填充了的矩形, 其左上角坐标为(x1, y1),右下角的坐标为(x2, y2)。(0,0)为图像的左上角。

例如:应用如上函数,绘制填充圆形和填充正方形,代码如下

 代码如下复制代码

<?php

  header("Content-type: image/png");//将图像输出到浏览器

  $img= imagecreate(400, 200);//创建一个400X200的画布

  $bg= imagecolorallocate($img, 0, 0, 255);//设置背景颜色

  $white= imagecolorallocate($img, 255, 255 ,255);//设置填充颜色

  imagefilledellipse($img, 100, 100, 150, 150,$white);//绘制填充圆形

  imagefilledrectangle($img, 200, 50, 300, 150,$white);//绘制填充正方形

  imagepng($img);//以png格式输出图像

  imagedestroy($img);//释放资源

运行结果如下所示

小编推荐的这篇文章介绍了php使用Jpgraph创建柱状图展示年度收支表效果示例,非常实用,有兴趣的同学快来看看吧。

应用GD2库可以创建各式各样的图像,但是制作复杂的统计图形,仅通过GD2函数库来实现,则显得非常繁琐。PHP从诞生走向成熟经历了多次变革,在这期间,许多组织机构都开发了PHP的框架和类库。Jpgraph图形类库就是其中非常实用、流行的代表,不仅功能强大,而且操作简单。

例如:应用Jpgraph创建柱状图展示年度收支情况。

(1)将Jpgraph类库,首相应该,下载该类库的压缩包,下载完毕后解压到项目所在目录。

配置方式有两种,

(1)打开PHP的安装目录,编辑php.ini文件并修改其中的include_path参数,在其后增加文件夹名,如include_path = ".;D:\wampserver\www\jpgraph"

(2)重启Apache服务器即可生效

如果只想在本站点使用Jpgraph,则直接解压到项目的工程目录下即可。

需要用require_once等语句将所有文件导入到项目中。

例如建立index.php页面

 代码如下 复制代码

<?php

require_once'jpgraph/src/jpgraph.php';//导入Jpgraph类库

require_once'jpgraph/src/jpgraph_bar.php';//导入Jpgraph类库的柱状图功能

$data=array(80, 73, 89, 43, 56, 76, 89, 96, 93, 30, 98, 78);//设置统计数据

$xdata=array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');

$graph=newGraph(600, 300);//设置画布大小

$graph->SetScale('textlin');//设置坐标刻度类型

$graph->SetShadow();//设置画布阴影

$graph->img->SetMargin(40, 30, 20, 40);//设置统计图边距

$barplot=newBarPlot($data);//实例化BarPlot对象

$barplot->SetFillColor('blue');//设置柱状图前景色

$barplot->value->Show();//显示

$graph->Add($barplot);

$graph->title->Set(iconv('utf-8','GB2312//IGNORE','***科技有限公司年度收支')); //设置标题iconv防止中文乱码

$graph->xaxis->title->Set(iconv('utf-8','GB2312//IGNORE','月份')); //设置X轴名称

$graph->xaxis->SetTickLabels($xdata);//设置x轴标注

$graph->yaxis->title->Set(iconv('utf-8','GB2312//IGNORE','总金额(万元)')); //设置y轴名称

$graph->title->SetFont(FF_SIMSUN, FS_BOLD);//设置标题字体

$graph->xaxis->title->SetFont(FF_SIMSUN, FS_BOLD);//设置x轴字体

$graph->yaxis->title->SetFont(FF_SIMSUN, FS_BOLD);//设置y轴字体

$graph->Stroke();//输出图像

运行结果为:

小编给大家推荐的这篇文章介绍了thinkphp3.2中实现phpexcel导出带生成图片示例,非常实用,有兴趣的同学快来看看吧。

首先下载PHPEXCEL  下载地址:http://phpexcel.codeplex.com/        https://github.com/PHPOffice/PHPExcel

把Classes目录下的文件(PHPExcel.php和PHPExcel文件夹),放到ThinkPHP\Library\Org\Util目录下

PHPExcel.php  改名为 :PHPExcel.class.php

 

 代码如下复制代码

// 导出exl

 

  publicfunctionlook_down(){

 

    $id= I('get.id');

 

    $m= M ('offer_goods');

 

    $where['offer_id'] =$id;

 

    $data=$m->field('goods_id,goods_sn,goods_name,barcode,goods_type,price')->select();

 

      

 

    // 导出Exl

 

    import("Org.Util.PHPExcel");

 

    import("Org.Util.PHPExcel.Worksheet.Drawing");

 

    import("Org.Util.PHPExcel.Writer.Excel2007");

 

    $objPHPExcel=new\PHPExcel();

 

      

 

    $objWriter=new\PHPExcel_Writer_Excel2007($objPHPExcel);

 

    

 

    $objActSheet=$objPHPExcel->getActiveSheet();

 

      

 

    // 水平居中(位置很重要,建议在最初始位置)

 

    $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

 

    $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

 

    $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

 

    $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

 

    $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

 

    $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

 

      

 

    $objActSheet->setCellValue('A1','商品货号');

 

    $objActSheet->setCellValue('B1','商品名称');

 

    $objActSheet->setCellValue('C1','商品图');

 

    $objActSheet->setCellValue('D1','商品条码');

 

    $objActSheet->setCellValue('E1','商品属性');

 

    $objActSheet->setCellValue('F1','报价(港币)');

 

    // 设置个表格宽度

 

    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(16);

 

    $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(80);

 

    $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);

 

    $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);

 

    $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);

 

    $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);

 

      

 

    // 垂直居中

 

    $objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

 

    $objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

 

    $objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

 

    $objPHPExcel->getActiveSheet()->getStyle('E')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

 

    $objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

 

      

 

    foreach($dataas$k=>$v){

 

      $k+=2;

 

      $objActSheet->setCellValue('A'.$k,$v['goods_sn']); 

 

      $objActSheet->setCellValue('B'.$k,$v['goods_name']); 

 

          

 

        

 

      $img= M('goods')->where('goods_id = '.$v['goods_id'])->field('goods_thumb')->find();

 

      // 图片生成

 

      $objDrawing[$k] =new\PHPExcel_Worksheet_Drawing();

 

      $objDrawing[$k]->setPath('./Upload/'.$img['goods_thumb']);

 

      // 设置宽度高度

 

      $objDrawing[$k]->setHeight(80);//照片高度

 

      $objDrawing[$k]->setWidth(80);//照片宽度

 

      /*设置图片要插入的单元格*/

 

      $objDrawing[$k]->setCoordinates('C'.$k);

 

      // 图片偏移距离

 

      $objDrawing[$k]->setOffsetX(12);

 

      $objDrawing[$k]->setOffsetY(12);

 

      $objDrawing[$k]->setWorksheet($objPHPExcel->getActiveSheet());

 

        

 

      // 表格内容

 

      $objActSheet->setCellValue('D'.$k,$v['barcode']); 

 

      $objActSheet->setCellValue('E'.$k,$v['goods_type']); 

 

      $objActSheet->setCellValue('F'.$k,$v['price']);

 

          

 

      // 表格高度

 

      $objActSheet->getRowDimension($k)->setRowHeight(80);

 

        

 

    }

 

      

 

    $fileName='报价表'

 

    $date=date("Y-m-d",time());

 

    $fileName.="_{$date}.xls";

 

    $fileName= iconv("utf-8","gb2312",$fileName);

 

    //重命名表

 

    // $objPHPExcel->getActiveSheet()->setTitle('test');

 

    //设置活动单指数到第一个表,所以Excel打开这是第一个表

 

    $objPHPExcel->setActiveSheetIndex(0);

 

    header('Content-Type: application/vnd.ms-excel');

 

    header("Content-Disposition: attachment;filename=\"$fileName\"");

 

    header('Cache-Control: max-age=0');

 

    $objWriter= \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');

 

    $objWriter->save('php://output'); //文件通过浏览器下载

 

    // END 

 

  }

 

水平居中,垂直居中,高度 等设置。注意放的位置,如果你放在末尾,那么是下一样生效。放到头部,第一行生效(上面代码是第一行生效,如果放到foreach里面就是下一行生效)。

import介绍。import("Org.Util.PHPExcel.Writer.Excel2007"); 文件位置:Org\Util\PHPExcel\Writer\Excel2007.class.php

图片地址一定要是本地。objDrawing[ objDrawing[k]->setPath('./Upload/'.$img['goods_thumb']); 图片位置:安装目录/Upload/xxx

 

 

[!--infotagslink--]

相关文章

  • NodeJS实现阿里大鱼短信通知发送

    本文给大家介绍的是nodejs实现使用阿里大鱼短信API发送消息的方法和代码,有需要的小伙伴可以参考下。...2016-01-20
  • PHP测试成功的邮件发送案例

    mail()函数的作用:连接到邮件服务器,利用smtp协议,与该服务器交互并投邮件。注意:1、mail函数不支持esmtp协议,---即,只能直投,不能登陆2、由上条,我们只能直投至最终的收件服务器地址.而该地址,又是在PHP.ini中指定的,所...2015-10-30
  • php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法:一、使用PHP内置的mail()函数<&#63;php $to = "test@163.com"; //收件人 $subject = "Test"; //主题 $message = "This is a test mail!"; //正文...2015-10-30
  • c# 实现发送邮件的功能

    这篇文章主要介绍了c# 如何实现发送邮件的功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法:一、使用PHP内置的mail()函数<&#63;php $to = "test@163.com"; //收件人 $subject = "Test"; //主题 $message = "This is a test mail!"; //正文...2015-10-30
  • python实现企业微信定时发送文本消息的实例代码

    这篇文章主要介绍了python实现企业微信定时发送文本消息的实例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-25
  • c#使用netmail方式发送邮件示例

    这篇文章主要介绍了c#使用netmail方式发送邮件的示例,大家参考使用吧...2020-06-25
  • PHP测试成功的邮件发送案例

    mail()函数的作用:连接到邮件服务器,利用smtp协议,与该服务器交互并投邮件。注意:1、mail函数不支持esmtp协议,---即,只能直投,不能登陆2、由上条,我们只能直投至最终的收件服务器地址.而该地址,又是在PHP.ini中指定的,所...2015-10-30
  • PHPMailer在SAE上无法发送邮件的解决方法

    PHPMailer在SAE上无法发送邮件怎么回事呢,我们以前在php5.2.7版本中使用了PHPMailer是可以发,但移到sae中发现无法发邮件了,那么此问题如何解决 在SAE上直接用5.2.7...2016-11-25
  • 整理几个android后台发送邮件的方法

    本文我们整理了三个android后台发送邮件的方法及示例,第一个是不借助Intent在android后台发送Email,第二个是用在收集应用的异常信息,第三个是分享一个android后台发送邮...2016-09-20
  • Perl中使用MIME::Lite发送邮件实例

    这篇文章主要介绍了Perl中使用MIME::Lite发送邮件实例,本文介绍了使用sendmail方式发送、发送HTML格式邮件、smtp方式发送邮件等内容,需要的朋友可以参考下...2020-06-29
  • 网上找到的两个PHP发送邮件的例子,很不错,贴出来给初学者参考吧(不知道是否有兄弟曾贴过),呵呵(2

    Advanced Example Here we will show the full capabilities of the PHP mail function. PHP Code: <?php echo "<html><body>"; $recipient = "Kris Arndt <karn@nu...2016-11-25
  • PHP利用Jmail组件实现发送邮件

    学过asp的朋友可能知道jmail组件是使用在asp中一个常用的邮箱发送功能,在php中如果想调用jmail功能我们需要使用com组件来操作。 我们先来介绍格式 代码如...2016-11-25
  • phpMailer 发送邮件

    //原创:www.111cn.net 注明:转载说明来处www.111cn.net // 昨天听一网友说用php 里面的mail发邮件发不出去,我想一般都是发不了的,现在大多数据邮件提供商都不准那样了...2016-11-25
  • C#编程实现发送邮件的方法(可添加附件)

    这篇文章主要介绍了C#编程实现发送邮件的方法,具备添加附件的功能,涉及C#文件传输及邮件发送的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php中利用curl smtp发送邮件实例

    本文章来介绍人一下关于与我们不同的发送邮件的方法我们来利用php curl stmp来实现邮件的发送程序。 $ telnet 邮箱SMTP服务地址 25 Trying 邮箱服务IP地址......2016-11-25
  • Python基于httpx模块实现发送请求

    这篇文章主要介绍了Python基于httpx模块实现发送请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-08
  • node.js 基于 STMP 协议和 EWS 协议发送邮件

    这篇文章主要介绍了node.js 基于 STMP 协议和 EWS 协议发送邮件的示例,帮助大家更好的理解和使用node.js,感兴趣的朋友可以了解下...2021-02-15
  • php定时发送邮件

    <?php // 请求 PHPmailer类 文件 require_once("class.phpmailer.php"); //发送Email函数 function smtp_mail ( $sendto_email, $subject, $body, $extra_hd...2016-11-25
  • 解决PHPMailer错误SMTP Error: Could not connect to SMTP host的办法

    PHPMailer发邮件时提示SMTP Error: Could not connect to SMTP host错误是smtp服务器的问题我们一起来看看关于SMTP Error: Could not connect to SMTP host问题的解...2016-11-25