phpmailer实现简单的邮件发送(以网易邮箱smtp服务器为例)

来源:互联网 发布:下载12360软件下载 编辑:程序博客网 时间:2024/06/06 03:23

1、描述

第一次做到用php做到发送邮件的功能。
Google了一下,php内置函数里面有一个mail()函数。但是使用mail的话,会涉及到很多问题,我也没有仔细研究过,反正都是和smtp协议息息相关。
于是,就去GitHub上开源的文件发送封装好的项目。后来就搜索到PHPMailer这个东西了。传送门:https://github.com/PHPMailer/PHPMailer (自行翻墙) 不多说,下载下来。

2、使用

当读完phpmailer的文档之后,你会找个一个最简单的demo。但是这个demo会加载一些‘不单纯’的邮件发送函数,比如附件发送,图片发送之类。我们这边只考虑最简单的。所以我们把class.phpmailer.php。class.smtp.php两个文件拿出来,他们是实现邮件发送和SMTP服务的关键。然后我们自己建立一个文件send.php 代码如下:

<?php/** * Created by PhpStorm. * User: tao * Date: 2017/3/14 * Time: 下午5:41 * Description: */echo postmail('目标邮箱','My subject','hello world');function postmail($to,$subject = '',$body = ''){    //Author:Jiucool WebSite: http://www.jiucool.com    //$to 表示收件人地址 $subject 表示邮件标题 $body表示邮件正文    //error_reporting(E_ALL);    error_reporting(E_STRICT);    date_default_timezone_set('Asia/Shanghai');//设定时区东八区    require_once('class.phpmailer.php');    include('class.smtp.php');    $mail             = new PHPMailer(); //new一个PHPMailer对象出来    $body            = eregi_replace("[\]",'',$body); //对邮件内容进行必要的过滤    $mail->CharSet ="GBK";//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码    $mail->IsSMTP(); // 设定使用SMTP服务    $mail->SMTPDebug  = 1;                     // 启用SMTP调试功能    // 1 = errors and messages    // 2 = messages only    $mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能    $mail->SMTPSecure = "ssl";                 // 安全协议,可以注释掉    $mail->Host       = 'smtp.163.com';      // SMTP 服务器//    $mail->Port       = 25;                   // SMTP服务器的端口号    $mail->Port       = 465;                   // SMTP服务器的端口号    $mail->Username   = '****网易邮箱的账号';  // SMTP服务器用户名,PS:我乱打的    $mail->Password   = '****网易邮箱的密码';            // SMTP服务器密码    $mail->SetFrom('网易邮箱的账号@163.com', 'blue');//    $mail->AddReplyTo('xxx@xxx.xxx','who');    $mail->Subject    = $subject;    $mail->AltBody    = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test    $mail->MsgHTML($body);    $address = $to;    $mail->AddAddress($address, '');    //$mail->AddAttachment("images/phpmailer.gif");      // attachment    //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment    if(!$mail->Send()) {        return 'Mailer Error: ' . $mail->ErrorInfo;    } else {        return "Message sent!恭喜,邮件发送成功!";    }}

参照demo,正确填写你的邮箱账号和你要的内容就可以正常发送了,但是我测试的时候会发送到垃圾邮件中,记得做好友好提示。

3、 备注

类似的smtp.qq.com 也能提供smtp服务,但是具体的话,要上网了解,最好登录自己的邮箱进行查看,支持的安全协议是什么。端口是什么,都要一一对应的。不然会报错,还有就是我是在线上测试的,本地测试的时候会报connect错误,自行解决了。更多的发送内容的话,参照demo和官方给的demo就能解决了。

0 0
原创粉丝点击