a)PHPMailer
PHPMailer是一个用于发送电子邮件的PHP类库。
要求PHP版本>=5.5.0,必须安装Openssl扩展,不建议在本地发邮件,IP信誉太低,有可能会出现554。可先做测试并注意邮件内容,不重复、不是垃圾邮件。
b)Composer(此博客中有安装方式)
Composer是 PHP5.3以上 的一个依赖管理工具。
比如我们去旅游是一个项目,那你需要依赖于手机、水、食物等等,手机又需要依赖充电宝。
再举个例子,我们使用Bootstrap['bu:tstræp]里面的Js,它需要依赖JQuery。Composer就是解决些问题,并且它对应的有一个仓库,里面有很多优秀的包,就像一个360软件管家,我们可以从上面下载到优质的软件。
c)Composer中国镜像
使用方式参考此处:https://pkg.phpcomposer.com/
a)PHP环境配置
使用PHPStudy和Wamp都可以,或者直接在搭建好Lamp或者Lnmp上开发更好。
b)下载PHPMailer
优势:可以下载你能想到的任意类库,而且很多框架与项目在用Composer。劣势:初期有一小部分学习成本。优势:学习成本低。劣势:不能理解新型的组件化编程思想,很有局限性,自己需要解决自动载入与依赖关系。c)两个测试邮箱
此案例使用163邮箱发送邮件,使用其它邮箱操作大同小异。
d)注册页面模板
打开命令。可以通过PHPStorm底部的Terminal或者Cmd打开,进入到我们刚刚建立好的项目目录执行。
composer init
此行命令生成Composer.json文件。我们现在只是简单的用它来下载PHPMailer,所以一路回车即可完成Composer.json文件的创建。这个时候我们会看到目录下面有一个composer.json,我们需要修改为中国镜像,这样速度会更快。

接着执行安装PHPMailer。
composer require phpmailer/phpmailer
出现以下目录即安装完成。

进入 https://github.com/PHPMailer/PHPMailer ,不会英文没关系,找见【A Simple Example】部分copy到我们的Mail.php文件中稍作修改即可,操作如下:

<?php
/**'-------------------------------------------------------------------
* Author: 熊伟洋<hi@xiongweiyang.com>
* WeChat: hello_McGrady
* QQ:434493420
* Motto: Hungry & Humble
* Date: 2017/12/6
* Time: 16:52
*'-------------------------------------------------------------------*/
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
class Mail
{
//自加属性给Catch用
public $errorInfo;
//发送方法 参数一:收件邮箱;参数二:内容。
public function send($address,$content){
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
$mail->CharSet = 'UTF-8';//设置收邮件不乱码
//Server settings
// $mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.163.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'hello_mcgrady@163.com'; // SMTP username
$mail->Password = '********'; // SMTP password ****授权码 请看下文****
$mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 994; // TCP port to connect to
//Recipients
$mail->setFrom('hello_mcgrady@163.com', 'Mr.Xiong');//发送者
// $mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
$mail->addAddress($address); // Name is optional Name是可选项 发送给谁
// $mail->addReplyTo('info@example.com', 'Information');//回复不需要
// $mail->addCC('cc@example.com');
// $mail->addBCC('bcc@example.com');
//Attachments 附件不需要
// $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
// $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
//Content 发送内容
$mail->isHTML(true); // Set email format to HTML内容是否可以支持Html
$mail->Subject = 'Mr.Xiong邮箱验证';//项目标题
$mail->Body = $content;//具体内容
// $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';//附加信息不需要
$mail->send();
// echo 'Message has been sent';
return true;//自加
} catch (Exception $e) {
// echo 'Message could not be sent.';
// echo 'Mailer Error: ' . $mail->ErrorInfo;
$this->errorInfo = $mail->ErrorInfo;
return false;//自加
}
}
}
以上代码中需要开启SMTP,登录你的163邮箱操作如下几步:





建立一个单入口文件,写一个类,类名随便,其中两个主要方法,分别为发送验证码和用户注册。
发送验证码方法中,实例化Mail类调用send方法并传好参数,参数一为收件人邮箱,也就是表单提交过来的数据;参数二为随机4位字符即可,看你的需求。
用户注册方法更简单,在发送验证码方法调用send方法之前,将你随机设定的字符存入Session当中,然后进行比对。同样咱们还可以做时间限制,例如超过60S进行注册,验证码作废,那咋做呢?自己想!学会举一反三!
1.实现忘记密码并通过邮箱找回密码。
2.用户订阅你的网站给他发信息。
3.新型产品上市,推广产品,做广告。
好啦,此篇博文讲解得不能够再详细了,剩下的交给你们啦!觉得此博文有帮助请赞赏!
Hungry & Humble。
Finally,谢谢大家的阅读!祝每天开心~
版权声明:本文为博主原创文章,未经博主允许不得转载。
微信赞赏
支付宝赞赏
[…] 1* 根据熊工博客安装了composer和PHPMail(详见http://www.xiongweiyang.com/%E7%BD%91%E7%AB%99%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%E4%B9%8B%E5%8F%91…) […]