整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

ThinkPHP5 封装邮件发送服务(可发附件)

ThinkPHP5 封装邮件发送服务(可发附件)

hinkPHP5 封装邮件发送服务(可发附件)

1、Composer 安装 phpmailer

2、ThinkPHP 中封装邮件服务类

我把它封装在扩展目录 extend/Mail.php 文件里,内容如下:

注意:如果发送附件,建议使用英文路径。中文路径可能会导致附件发送失败,收到的邮件没有附件。

上面需要的一些配置参数,我把它们放在扩展配置目录 application/extra/mail.php 文件里 ,内容如下:

注意:一般默认端口 25。如果使用了安全协议 ssl,那么端口号一般是 465 或 587。譬如 126 邮箱。

更多配置参数,可以看看源码:https://github.com/PHPMailer/PHPMailer/blob/master/class.phpmailer.php

3、测试


这里我使用 126 邮箱,安全协议 ssl,端口号 465,发送 html 内容,测试成功:

参考链接:

phpmail 的 STMP 邮件实例:https://github.com/PHPMailer/PHPMailer/blob/master/examples/smtp.phps

项目当中有很多时候都需要邮箱提醒,那么邮箱提醒功能是怎么做的呢,下面我以实际的例子作为介绍。

1、既然要发送邮箱,就要准备一个发送端的邮箱,我通常都是用QQ邮箱,所以就以QQ邮箱作为服务端的邮箱,其他邮箱的设置都是大同小异。

登录QQ邮箱找到设置一栏,开启POP3/SMTP服务,这里我已经开启了,具体的开启方法可以按照提示操作,开启之后还需要生成一个授权码,这个授权码在发送端的代码是必传的参数之一,到这里准备工作就算做好了,剩下的就是开始写代码。

2、发送邮件需要引用PHPMailer的类文件,所以在网上搜索phpemail并下载类文件,然后就是在所需代码中引用调用。

具体代码如下:

/**
 * 邮件发送函数
 */
function sendMail($to, $title, $content) {
    $email=[
        "smtpname"=>"smtp.qq.com",
        "email"=>"906556946@qq.com",
        "username"=>"动力3023",
        "password"=>"",//授权码
    ];
    require('./vendor/PHPMailer/PHPMailerAutoload.php');
    $mail=new \PHPMailer(); //实例化
    
    $mail->IsSMTP(); // 启用SMTP
    $mail->Host=$email['smtpname']; //smtp服务器的名称(这里以QQ邮箱为例)
    $mail->Username=$email['email']; //你的邮箱名
    $mail->Password=$email['password'] ; //授权码,注意不是登录密码
    $mail->From=$email['email']; //发件人地址(也就是你的邮箱地址)
    $mail->FromName=$email['username']; //发件人姓名
    $mail->SMTPAuth=true; //启用smtp认证
    $mail->SMTPSecure='ssl';
    $mail->Port=465;
    $mail->AddAddress($to,"尊敬的客户");
    $mail->WordWrap=50; //设置每行字符长度
    $mail->IsHTML(true); // 是否HTML格式邮件
    $mail->CharSet='utf-8'; //设置邮件编码
    $mail->Subject=$title; //邮件主题
    $mail->Body=$content; //邮件内容
    $mail->AltBody="这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
    
    return($mail->Send());
}

$res=sendMail('906556946@qq.com', '网站留言', '留言成功');

发送的内容样式是可以自定义的,如果需要的话可以直接写html样式,比如这样:

邮箱中收到邮件的截图:

《完》

大家如果喜欢的话麻烦点赞、关注、转发,谢谢大家。

用户在 HTML 表单中填写并提交数据时,可以使用 PHP 来接收并处理这些数据。要实现这一点,需要创建一个 PHP 脚本来处理提交的数据,然后将 HTML 表单的 "action" 属性设置为该脚本的文件路径。表单提交的数据需要进行验证和过滤,以确保数据的完整性和安全性。可以使用条件语句、正则表达式、过滤器函数等方法来验证和过滤数据,并使用 htmlspecialchars() 函数转义 HTML 标记,以防止 XSS 攻击。

以下是一个简单的示例:

HTML 表单代码:

<form action="submit.php" method="post">

<label for="name">Name:</label>

<input type="text" id="name" name="name">

<label for="email">Email:</label>

<input type="email" id="email" name="email">

<button type="submit">Submit</button>

</form>

PHP 代码(submit.php):

<?php

// 获取表单提交的数据

$name=$_POST['name'];

$email=$_POST['email'];

// 在这里进行处理,例如将数据存储到数据库中

// ...

// 返回一个响应,告诉用户数据已经被成功提交

echo "Thank you for submitting the form, $name!";

?>

在上面的示例中,表单的 "action" 属性设置为 "submit.php",这意味着提交表单时,数据将被发送到 submit.php 文件中的 PHP 代码中进行处理。PHP 代码使用 $_POST 数组来获取表单提交的数据,然后进行处理,例如将数据存储到数据库中。最后,PHP 代码返回一个响应,告诉用户数据已经被成功提交。在处理表单数据时,一定要对用户输入进行验证和过滤,以防止安全漏洞。

需要对表单提交的数据进行验证和过滤,以确保数据的完整性和安全性。以下是一些常见的方法:

1、验证表单字段:在 PHP 代码中使用条件语句和正则表达式等方法来验证表单字段的有效性,例如验证电子邮件地址的格式是否正确。

$email=$_POST['email'];

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

// 如果邮件地址格式不正确,则显示错误消息

echo "Invalid email address";

}

2、过滤输入数据:使用 PHP 中的过滤器函数来过滤表单输入数据,以防止 XSS 攻击和 SQL 注入等安全漏洞。

$name=$_POST['name'];

$name=filter_var($name, FILTER_SANITIZE_STRING); // 过滤特殊字符和标签

3、防止跨站脚本攻击(XSS):在 PHP 代码中使用 htmlspecialchars() 函数来转义 HTML 标记,防止恶意脚本注入到页面中。

$name=$_POST['name'];

$name=htmlspecialchars($name, ENT_QUOTES, 'UTF-8'); // 转义 HTML 标记

4、防止 SQL 注入攻击:在 PHP 代码中使用参数化查询或准备语句来执行数据库操作,以防止恶意 SQL 语句注入到数据库中。

$stmt=$pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");

$stmt->bindParam(':name', $name);

$stmt->bindParam(':email', $email);

$stmt->execute();

通过这些方法,可以确保表单提交的数据是安全和有效的,并且能够正常地处理和存储到数据库中。