0


使用 PHPMailer 实现邮件的实时发送

  • 💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】
  • 🤟 基于Web端打造的:👉轻量化工具创作平台
  • 💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】

今天我们利用GitHub上20K+星星的项目

PHPMailer

实现一个接收询盘并实时同步到指定邮箱的功能。

实现基本的HTML+CSS

首先我们用 HTML+CSS 做一个简单的

form

表单

<div><div><div>You can contact us at anytime!</div><formaction="zuizhong.php"method="post"><inputtype="text"name="inquiry_lam_name_footer"placeholder='Your Name'><inputtype="text"name="inquiry_lam_email_footer"placeholder='Your E-mail'><inputtype="text"name="inquiry_lam_phone_footer"placeholder='Your Phone'><inputtype="text"name="inquiry_lam_address_footer"placeholder='Your Company Name'><textareaname="inquiry_lam_message_footer"placeholder='Briefly describe your requirement'></textarea><buttontype="submit">Send</button></form></div></div>

加点

CSS
body{font-family: Arial, sans-serif;background-color: #f4f4f4;margin: 0;padding: 0;}div{max-width: 600px;margin: 20px auto;padding: 20px;background-color: #fff;border-radius: 5px;box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);}div > div{text-align: center;margin-bottom: 20px;}form input[type="text"],
form textarea{width: 100%;padding: 10px;margin-bottom: 10px;border-radius: 5px;border: 1px solid #ccc;box-sizing: border-box;}form button{padding: 10px 20px;border: none;border-radius: 5px;background-color: #007bff;color: #fff;cursor: pointer;}form button:hover{background-color: #0056b3;}

此时表单显示如下:

在这里插入图片描述

下载 PHPMailer 并配置

Github地址:https://github.com/PHPMailer/PHPMailer

在这里插入图片描述

我是直接下载上面的这个压缩包,下载后解压,层级一定要放对,不然无法调用。在这里插入图片描述

获取邮箱授权码

这里我就以国内使用最多的QQ邮箱为例,当然其他邮箱也都类似,首先登录网页版QQ邮箱,找到设置——账号

在这里插入图片描述

翻到下面找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,点击管理服务,有的可能没开启,需要先开启服务

在这里插入图片描述

点击生成授权码,记得保存一下,后面需要用到

在这里插入图片描述

mail.php 示例代码

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';

$mail =newPHPMailer(true);try{
    $mail->isSMTP();                                           
    $mail->Host       ='smtp.qq.com';//QQ邮箱用这个,跟我一样就行
    $mail->SMTPAuth   =true;                                   
    $mail->Username   ='[email protected]';//换成你的qq邮箱
    $mail->Password   ='eqjnv*****achaa';//就是刚刚的授权码,用你的替换
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            
    $mail->Port       =465;//默认都是465//Recipients
    $mail->setFrom('[email protected]','haiyong');
    $mail->addAddress('[email protected]','Joe User');//添加收件人// $mail->addAddress('[email protected]');               //名字可加可不加,需要多个收件人,在后面增加就行//邮件内容
    $mail->isHTML(true);                                  
    $mail->Subject ='来自 海拥 的询盘';
    $mail->Body    ='这是一封来自 <b>海拥</b> 的询盘';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo '邮件已发送';}catch(Exception $e){
    echo "邮件未发送 Mailer Error: {$mail->ErrorInfo}";}

测试一下,可成功收到邮件。

在这里插入图片描述
在这里插入图片描述

最终实现代码

zuizhong.php

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';// 获取表单提交的数据if($_SERVER["REQUEST_METHOD"]=="POST"){
    $name = $_POST['inquiry_lam_name_footer']??'';
    $email = $_POST['inquiry_lam_email_footer']??'';
    $phone = $_POST['inquiry_lam_phone_footer']??'';
    $company = $_POST['inquiry_lam_address_footer']??'';
    $message = $_POST['inquiry_lam_message_footer']??'';// 获取当前时间date_default_timezone_set('Your_Timezone');// 设置您所在的时区
    $currentTime =date('Y-m-d H:i:s');// 构建保存到文件的内容
    $data ="Time: $currentTime\nName: $name\nEmail: $email\nPhone: $phone\nCompany: $company\nMessage: $message\n\n";// 打开或创建一个文件用于写入
    $file =fopen("user_data.php","a");// 'a' 模式表示追加写入// if ($file) {//     // 写入数据到文件//     fwrite($file, $data);//     fclose($file);if($file){// 解码 HTML 实体编码,并转换为 UTF-8 编码,然后将数据直接写入文件
    $decodedData =mb_convert_encoding(html_entity_decode($data, ENT_QUOTES | ENT_HTML5,'UTF-8'),'UTF-8');fwrite($file,"\xEF\xBB\xBF");// 添加 UTF-8 BOM,确保以 UTF-8 编码打开fwrite($file, $decodedData);fclose($file);// 构建 HTML 内容,每个字段后添加 <br> 标签来换行
        $htmlContent ="<strong>Time:</strong> $currentTime<br>"."<strong>Name:</strong> $name<br>"."<strong>Email:</strong> $email<br>"."<strong>Phone:</strong> $phone<br>"."<strong>Company:</strong> $company<br>"."<strong>Message:</strong> $message<br><br>";// 使用 <br> 换行,并添加额外的 <br> 产生两行间隔// 发送邮件
        $mail =newPHPMailer(true);try{//Server settings
            $mail->isSMTP();                                            
            $mail->Host       ='smtp.qq.com';//QQ邮箱用这个,跟我一样就行
            $mail->SMTPAuth   =true;                                   
            $mail->Username   ='[email protected]';//换成你的邮箱
            $mail->Password   ='eqj******haa';//你的授权码
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            
            $mail->Port       =465;//不用改,一般都是465

            $mail->setFrom('[email protected]','haiyong');
            $mail->addAddress('[email protected]','hy2');     
            $mail->addAddress('[email protected]','hy3');//收件人,可无限加//邮件内容
            $mail->isHTML(true);                                  
            $mail->Subject ='New Contact Form haiyong.site';
            $mail->Body    = $htmlContent;
            
            $mail->send();
            echo 'Message has been sent';}catch(Exception $e){
            echo "Message could not be sent. haiyong Error: {$mail->ErrorInfo}";}// 如果邮件发送成功或失败,重定向到 contactsave.html 页面header("Location: contactsave.html");exit();}else{
        echo "Error opening file.";}}?>

表单填写内容

在这里插入图片描述

后台

user_data.php

文件内显示
在这里插入图片描述

QQ邮箱收到的内容

在这里插入图片描述

成功接收邮件,统计放入了

user_data.php

文件,并显示出了此时时间。到这里我们就完整实现了使用 PHPMailer 进行邮件的实时发送,希望本篇文章能帮助到大家。

⭐️ 好书推荐

《数学之美》

在这里插入图片描述

【内容简介】

本书从几个著名数学问题出发,深入浅出地讲解了与我国初高中的教学实际紧密联系的数学知识,并把知识内容与数学核心素养结合起来。在这条知识主线的周边,穿插介绍知识内容的历史发展过程,对相关数学分支在数学史上的地位进行深入思考,并辅之以数学文化、趣味知识、数学游戏、数学悖论等茂盛枝叶。全书共6章,第1章介绍无处不在的杨辉三角;第2章介绍当我们谈论正方体时,我们能够谈论些什么;第3章介绍了神奇的 2;第4章介绍斐波那契数列与黄金分割;第5章介绍圆锥曲线面面观;第6章介绍感悟数学的魅力与威力。

📚 京东购买链接:《数学之美》

《光的共鸣:人像板绘原理与技法》

在这里插入图片描述

【内容简介】

本书共6章,以颇受插画师青睐的Procreate软件为主要工具,带领读者提升人物绘画创作的技能和技巧。书中包括对比例与结构、光影二分法、直接画法、色彩与光影的关系处理、绘画的心得与技巧等的介绍,内容涉及绘制头部时不同角度的比例表现、平光和阴天光线的表现方法、通透的皮肤质感表现方法、头发的层次和质感表现方法、二次元绘画的表现方法等,讲解分析了30余个典型案例,并在第 6 章展示了大量供读者学习借鉴的光影表现作品。

📚 京东购买链接:《光的共鸣:人像板绘原理与技法》

标签: php

本文转载自: https://blog.csdn.net/qq_44273429/article/details/134784616
版权归原作者 海拥✘ 所有, 如有侵权,请联系我们删除。

“使用 PHPMailer 实现邮件的实时发送”的评论:

还没有评论