TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)

摘要:
修改php.ini extension=php_Remove allow from openssl.dll前面的分号_ url_Fopen=Off中的一些配置,将其更改为allow_ url_ Fopen=On1|0HPMailerPHPMailer是一个封装的php邮件发送类,Host='smtp。qq。com’//--------qq邮箱需要--------//设置为使用ssl加密登录并验证$mail->

在 PHP 应用开发中,往往需要验证用户邮箱、发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持。

    如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮件发送程序了,不过开发这样一个程序并不容易。 

    好在 PHPMailer 封装的足够强大,使用它可以更加便捷的发送邮件,免去了我们很多额外的麻烦。


首先,修改php.ini中的一些配置

  1.  extension=php_openssl.dll  前面的分号去掉
  2.  allow_url_fopen = Off   改为   allow_url_fopen = On

1|0PHPMailer

PHPMailer 是一个封装好的 PHP 邮件发送类,支持发送 HTML 内容的电子邮件,以及可以添加附件发送,并不像 PHP 本身 mail() 函数需要服务器环境支持,您只需要设置邮件服务器以相关信息就能实现邮件发送功能。

PHPMailer 项目地址https://github.com/PHPMailer/PHPMailer

1|1PHP扩展支持

PHPMailer 需要 PHP 的 sockets 扩展支持,而登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密,故 PHP 还得包含 openssl 的支持。

TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)第1张

↑ 使用 phpinfo() 函数查看 socket 和 openssl 扩展信息(wamp server 默认启用了该扩展)。

1|2整理后的PHPMailer 核心文件

我们需要下载的phpmailer文件:点击下载

↑ 在本文中只需要将下载的压缩包解压到当前TP5框架下的extend文件夹中

2|0QQ 邮箱中的 设置

TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)第2张

选择账户

TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)第3张

所有的主流邮箱都支持 SMTP 协议,但并非所有邮箱都默认开启,您可以在邮箱的设置里面手动开启。

第三方服务在提供了账号和密码之后就可以登录 SMTP 服务器,通过它来控制邮件的中转方式。

2|1开启 SMTP 服务

TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)第4张

↑ 选择 IMAP/SMTP 服务,点击开启服务。

2|2验证密保

TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)第5张

↑ 发送短信“配置邮件客户端”至1069-0700-69。

2|3获取授权码

TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)第6张

↑ SMTP 服务器认证密码,需要妥善保管(PS:密码直接没有空格)。

3|0PHP发送邮件

3|1基本代码

下面的代码演示了 PHPMailer 的使用方法,注意 PHPMailer 实例的配置过程。

Loader::import('phpmailer.phpmailer');//加载extend中的自定义类
$mail = new PHPMailerPHPMailer(); //实例化
header("content-type:text/html;charset=utf-8");
// 使用SMTP方式发送
$mail->IsSMTP();
// 设置邮件的字符编码
$mail->CharSet='UTF-8';
// 企业邮局域名
$mail->Host = 'smtp.qq.com';
//---------qq邮箱需要的------//设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl';
//设置ssl连接smtp服务器的远程服务器端口号 可选465或587
$mail->Port = 465;//---------qq邮箱需要的------
// 启用SMTP验证功能
$mail->SMTPAuth = true;
//邮件发送人的用户名(请填写完整的email地址)
$mail->Username = '123456789@qq.com' ;
// 邮件发送人的 密码 (授权码)
$mail->Password = '修改为自己的授权码';  //修改为自己的授权码
//邮件发送者email地址
$mail->From ="123456789@qq.com";
//发送邮件人的标题
$mail->FromName ="123456789@qq.com";
//收件人的邮箱 给谁发邮件
$email_addr = "收件人邮箱";
//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
$mail->AddAddress("$email_addr", substr(  $email_addr, 0 , strpos($email_addr ,'@')));
//回复的地址
$mail->AddReplyTo('123456789@qq.com' , "" );
$mail->AddAttachment("./mail.rar"); // 添加附件
//set email format to HTML //是否使用HTML格式
$mail->IsHTML(true);
//邮件标题
$mail->Subject = '邮件标题';
//邮件内容
$mail->Body =  "<p style='color:red'>" . '邮件内容' . '</p>';
//附加信息,可以省略
$mail->AltBody = '';
// 添加附件,并指定名称
$mail->AddAttachment( './error404.php' ,'php文件');
//设置邮件中的图片
$mail->AddEmbeddedImage("shuai.jpg", "my-attach", "shuai.jpg");
        if( !$mail->Send() ){
            $mail_return_arr['mark'] = false ;
            $str  =  "邮件发送失败. <p>";
            $str .= "错误原因: " . $mail->ErrorInfo;
            $mail_return_arr['info'] = $str ;
        }else{
            $mail_return_arr['mark'] = true ;
            $str =  "邮件发送成功";
            $mail_return_arr['info'] = $str ;
        }
        echo "<pre>";
        print_r( $mail_return_arr);

  

将上述代码修改为自己需要的就搞定了!

      当你的才华还撑不起你的野心的时候,你就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌,机会永远是留给最渴望的那个人,学会与内心深处的你对话,问问自己,想要怎样的人生,静心学习,耐心沉淀,送给自己,共勉。 

免责声明:文章转载自《TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇openresty性能优化 -- table相关优化学习Linux系列--安装软件环境下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微服务中如何设计一个权限授权服务

基于角色的访问控制  (RBAC)    是将系统访问限制为授权用户的一种方法,是围绕角色和特权定义的与策略无关的访问控制机制,RBAC的组件使执行用户分配变得很简单。   在组织内部,将为各种职务创建角色。执行某些操作的权限已分配给特定角色。成员或职员(或其他系统用户)被分配了特定角色,并且通过这些角色分配获得执行特定系统功能所需的权限。由于未直接为用户...

高德地图API,地图类型切换(卫星地图)

常用控件 AMap.MapType :地图类型切换插件,可用于切换卫星地图 首先记得引入插件 <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=ce3b1a3a7e67fc75810ce1ba1f83c01a&plugin=AMa...

把微信小程序异步API转为Promise,简化异步编程

把微信小程序异步API转化为Promise。用Promise处理异步操作有多方便,谁用谁知道。 微信官方没有给出Promise API来处理异步操作,而官方API异步的又非常多,这使得多异步编程会层层回调,代码一复杂,回调起来就想砸电脑。 于是写了一个通用工具,把微信官方的异步API转化为Promise,方便处理(多)异步操作。 你可以这样用: 准备转化后...

【巷子】---fetch---基本使用

一、fetch   fetch是一种XMLHttpRequest的一种替代方案,在工作当中除了用ajax获取后台数据外我们还可以使用fetch、axios来替代ajax  二、安装      执行npm install whatwg-fetch --save即可安装。   为了兼容老版本浏览器,还需要安装npm install es6-promise --...

Samba安装配置

Samba简介 Samba官网:http://www.samba.orgSMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“N...

EasyUI 页面分页

DAO package com.hanqi.dao; import java.util.ArrayList; import java.util.List; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction...