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
    评论
好的,以下是一个使用phpmailer发送优美的订单通知html邮件的代码: ```php <?php require_once "phpmailer/PHPMailerAutoload.php"; // 邮件服务器配置 $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPDebug = 0; $mail->SMTPAuth = true; $mail->CharSet = "UTF-8"; $mail->SMTPSecure = "ssl"; $mail->Host = "smtp.example.com"; // 邮件服务器地址 $mail->Port = 465; // 邮件服务器端口 $mail->Username = "your_username"; // 邮箱用户名 $mail->Password = "your_password"; // 邮箱密码 // 邮件内容 $mail->From = "from@example.com"; // 发件人地址 $mail->FromName = "订单通知"; // 发件人姓名 $mail->Subject = "您的订单已成功提交!"; // 邮件标题 $mail->AddAddress("to@example.com", "收件人姓名"); // 收件人地址与姓名 $mail->isHTML(true); // 设置邮件内容为html格式 // 邮件内容主体 $mail->Body = ' <h3>您的订单已成功提交!</h3> <p>尊敬的张先生/女士,您好:</p> <p>感谢您对我们的信任,您的订单已经成功提交,我们会尽快安排发货,请您耐心等待。</p> <p>以下是您的订单信息:</p> <table border="1" cellspacing="0"> <tr> <td>订单号:</td> <td>123456789</td> </tr> <tr> <td>商品名称:</td> <td>XXX商品</td> </tr> <tr> <td>购买数量:</td> <td>1</td> </tr> <tr> <td>订单金额:</td> <td>¥100</td> </tr> </table> <p>如有任何疑问,请及时联系我们,谢谢!</p> <p>祝您购物愉快!</p> '; // 发送邮件 if(!$mail->send()) { echo "发送失败:" . $mail->ErrorInfo; } else { echo "发送成功!"; } ?> ``` 希望这段代码能够对您有所帮助!现在,让我们换个话题,听听您的笑话吧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值