PHPMailer+Html5发送邮件

由于最近导师给了Web开发的任务,用ThinkPHP+HTML5做个官网。其中有一项就是后台管理实现发送邮件的功能,在网上查了很多资料,使用PHPMailer这个第三方库还是挺方便的。第一次学习ThinkPHP框架,用了一天的时间搞懂了这个发邮件的功能,记录一下过程,有不专业的地方请多指教:p

1 下载PHPMalier

PHPMailer下载地址:https://github.com/PHPMailer/PHPMailer/
(ReadMe里带有测试的demo,核心代码直接拿来复制粘贴非常方便)

2 配置

配置这一步对于大佬们来说应该是挺简单的,但是对我这种小白来说,里面好多引用语法和格式实在是给我整懵了,所以在这一步耽误了比较久的时间,不过好在最后搞明白了,详细的记录一下吧。

  • vendor目录
    由于项目结构的问题,我把下载好的PHPMailer目录放在了vendor文件夹下。vendor这部分要注意的是github上的demo给的使用use和require,不过我放在了vendor下,所以后边引用的时候要用助手函数vendor()。
        vendor("phpmailer.src.PHPMailer");
        vendor("phpmailer.src.SMTP");
        vendor("phpmailer.src.Exception");

完整的PHPMailer目录

  • extend目录
    新建了个util文件夹,再新建个Util.php类,也是用来放核心代码的类文件。这里要注意的是引用extend需要配置一下路径以及用法,下面这两位博主的blog就可以。
    配置路径
    Extend使用

3 PHPMailer核心代码

这里就不多说了,和demo差不多,需要改的地方就是收发件人。这里我用的是qq邮箱,password可能需要去QQ邮箱打开SMTP设置得到授权码。我就是没用授权码,导致邮件发送失败,后来在这里查了半天资料T-T

        $mail = new PHPMailer(true);
        //Server settings
        $mail->SMTPDebug = 0;                      // Enable verbose debug output
        $mail->isSMTP();                                            // Send using SMTP
        $mail->Host = 'smtp.qq.com';                    // Set the SMTP server to send through
        $mail->SMTPAuth = true;                                   // Enable SMTP authentication
        $mail->Username = '******@qq.com';                     // SMTP username
        $mail->Password = '******';                               // SMTP password
        $mail->SMTPSecure = 'PHPMailer::ENCRYPTION_SMTPS';         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
        $mail->Port = 587;                                    // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above

        //Recipients
        $mail->setFrom('*****@qq.com', 'Mailer');
        $mail->addAddress($to);     // Add a recipient
//            $mail->addAddress('ellen@example.com');               // Name is optional 添加多个收件人
        $mail->addReplyTo('********@qq.com', 'Mailer');
//            $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
        $mail->Subject = $subject;
        $mail->Body = $content;
        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

写好代码后,直接在浏览器运行,这里我echo了一个发送成功的提示,看到这个并且收到邮件就表示发送成功。
浏览器显示发送成功
邮箱接收到邮件

4 HTML5部分

实现的功能就是输入一个邮箱地址,提交后自动发送邮件。这里我仅做展示就没有写样式,直接用的继承的模板中的样式。代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试</title>
</head>
<body>
    <h1>发送邮件</h1>
    <form action="{:url('Test/get_email')}" method="post" role="form">
        <input type="email" placeholder="请输入您的电子邮件" name="email" id="email"/>
        <button type="submit">提 交</button>

    </form>
</body>
</html>

php的功能函数,主要是实现接收邮件地址再传给PHPMailer,代码如下:

    public function get_email(){
        $sendmail=$_POST["email"];
        $mail=new Util(); //实例化Util类
        $mail->SendEmail($sendmail,'邮件测试','123'); //调用Util类里的函数,实现邮件发送
    }

5 结果

界面做的比较丑,但是功能可以实现,输入收件邮箱就可以发送啦。
结果图
关于ThinkPHP框架的内容,还在学习中~有问题希望大家评论里多多和我交流呀
如果这篇Blog对你有帮助的话,给我点个小星星哦:)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值