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

今天我们利用GitHub上20K+星星的项目 PHPMailer 实现一个接收询盘并实时同步到指定邮箱的功能。

实现基本的HTML+CSS

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

You can contact us at anytime!

加点 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 示例代码

use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/Exception.php';

require 'PHPMailer/src/PHPMailer.php';

require 'PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);

try {

$mail->isSMTP();

$mail->Host = 'smtp.qq.com'; //QQ邮箱用这个,跟我一样就行

$mail->SMTPAuth = true;

$mail->Username = '1836360247@qq.com'; //换成你的qq邮箱

$mail->Password = 'eqjnv*****achaa'; //就是刚刚的授权码,用你的替换

$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;

$mail->Port = 465; //默认都是465

//Recipients

$mail->setFrom('1836360247@qq.com', 'haiyong');

$mail->addAddress('208617432@qq.com', 'Joe User'); //添加收件人

// $mail->addAddress('208617432@qq.com'); //名字可加可不加,需要多个收件人,在后面增加就行

//邮件内容

$mail->isHTML(true);

$mail->Subject = '来自 海拥 的询盘';

$mail->Body = '这是一封来自 海拥 的询盘';

$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

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 内容,每个字段后添加
标签来换行

$htmlContent = "Time: $currentTime
"

. "Name: $name
"

. "Email: $email
"

. "Phone: $phone
"

. "Company: $company
"

. "Message: $message

"; // 使用
换行,并添加额外的
产生两行间隔

// 发送邮件

$mail = new PHPMailer(true);

try {

//Server settings

$mail->isSMTP();

$mail->Host = 'smtp.qq.com'; //QQ邮箱用这个,跟我一样就行

$mail->SMTPAuth = true;

$mail->Username = '1836360247@qq.com'; //换成你的邮箱

$mail->Password = 'eqj******haa'; //你的授权码

$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;

$mail->Port = 465; //不用改,一般都是465

$mail->setFrom('1836360247@qq.com', 'haiyong');

$mail->addAddress('208617432@qq.com', 'hy2');

$mail->addAddress('haiyong314@163.com', '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 章展示了大量供读者学习借鉴的光影表现作品。

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

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: