1. 首先下载phpmailer插件,并将插件复制到目录下
下载地址: http://download.csdn.net/download/m_nanle_xiaobudiu/10261269
2. home/view/user/mail_chck.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>老迟网络验证邮件</title><style type="text/css">*{margin-bottom: 1%;}</style>
</head>
<body>
<form action="/home/User/mail_check" method="post"><input type="text" name="email" placeholder="请输入邮箱" ><br><input type="submit" value="立即提交"></form>
</body>
</html>
显示为:
2. home/controller/usercontroller
这里,我将方法定义在了home/UserController中
<?phpnamespace Home\Controller;use Think\Controller;
class UserController extends Controller
{function mail_check() {if(IS_POST) {$to = $_POST['email'];$username = $_POST['username'];$title = '注册邮箱';$content = '验证邮箱';$this->sendMail($to,$username,$title,$content);} else {$this->display();}}/*** @param $to '收件人'* @param $title '标题'* @param $content '内容'* @return bool* @throws \phpmailerException*/function sendMail($to,$username,$title,$content){import("phpMailer.PHPMailerAutoload");//实例化PHPMailer核心类$mail = new \PHPMailer();//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式$mail->SMTPDebug = 1;//使用smtp鉴权方式发送邮件$mail->isSMTP();//smtp需要鉴权 这个必须是true$mail->SMTPAuth = true;//链接qq域名邮箱的服务器地址$mail->Host = 'smtp.126.com';//设置使用ssl加密方式登录鉴权$mail->SMTPSecure = 'ssl';//设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了 可选465或587$mail->Port = 465;//设置smtp的helo消息头 这个可有可无 内容任意// $mail->Helo = 'Hello smtp.qq.com Server';//设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名$mail->Hostname = 'http://oo';//设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码$mail->CharSet = 'UTF-8';//设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名$mail->FromName = '老迟网络工作室';//smtp登录的账号(这里填写我们自己的邮箱账号)$mail->Username ='chishen163@126.com';//smtp登录的密码 使用生成的授权码(最新的授权码)
// $mail->Password = 'gkuksfwcdovvbiii';$mail->Password = '';//设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”$mail->From = 'chishen163@126.com';//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false$mail->isHTML(true);//设置收件人邮箱地址$mail->addAddress($to,$username);//添加该邮件的主题$mail->Subject = $title;//添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件$mail->Body = $content;//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可)// 第二参数为在邮件附件中该附件的名称// $mail->addAttachment('./d.jpg','mm.jpg');//同样该方法可以多次调用 上传多个附件// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');$status = $mail->send();//简单的判断与提示信息if($status) {echo "发送成功";}else{echo "发送失败,请重试";}}}
这样,我们就可以用我们自己的邮箱发送到用户填写的邮箱中去了
效果:
这里,我们发送的内容可以定义为验证邮箱的内容,例如
注:生产环境下,请将phpmailer中的调试关掉,否则会返回多余信息