PHP发送邮件

news2025/4/24 2:13:40

一、安装PHPMailer

        进入项目目录下,执行:composer require phpmailer/phpmailer

二、使用

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

require 'vendor/autoload.php';

$mail = new PHPMailer(true); 
header("Content-Security-Policy: script-src 'self' 'unsafe-inline' *.baidustatic.com; style-src 'self' 'unsafe-inline';");
header('Content-Type: application/json');

// 邮件配置
$mailConfig = [
    'smtp_host' => 'smtp.163.com',
    'smtp_port' => 465, // 或587
    'smtp_user' => 'xxx@163.com',
    'smtp_pass' => 'xxx',
    'from'      => 'xxx@163.com',
    'to'        => 'xxx@163.com'
];


// 发送邮件
    
try {
        $mail->SMTPDebug = 2;
        $mail->isSMTP();
        $mail->Host = $mailConfig['smtp_host'];
        $mail->SMTPAuth = true;
        $mail->Username = $mailConfig['smtp_user'];
        $mail->Password = $mailConfig['smtp_pass'];
        $mail->SMTPSecure = 'ssl'; // 改为 ssl
        $mail->Port = $mailConfig['smtp_port']; // 465
        
        $mail->setFrom($mailConfig['from'], 'xxx');
        $mail->addAddress($mailConfig['to']);
        $mail->CharSet = 'UTF-8';
        $mail->Encoding = 'base64';
        $mail->ContentType = 'text/html; charset=utf-8';
        
        $mail->isHTML(true);
        $mail->Subject = 'xxx';
        $mail->Body = "
            <h3>xxx</h3>
            <p>xxx:xxx</p>
            <p>xxx:{$username}</p>
            <p>xxx:{$userPhone}</p>
            <p>xxx:" . date('Y-m-d H:i:s') . "</p>
        ";
        
        $mail->send();
    } catch (Exception $e) {
        throw new Exception("邮件发送失败: " . $e->getMessage());
    }

exit;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2341157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为您的照片提供本地 AI 视觉:使用 Llama Vision 和 ChromaDB 构建 AI 图像标记器

有没有花 20 分钟浏览您的文件夹以找到心中的特定图像或屏幕截图&#xff1f;您并不孤单。 作为工作中的产品经理&#xff0c;我总是淹没在竞争对手产品的屏幕截图、UI 灵感以及白板会议或草图的照片的海洋中。在我的个人生活中&#xff0c;我总是捕捉我在生活中遇到的事物&am…

K8S节点出现Evicted状态“被驱逐”

在Kubernetes集群中&#xff0c;Pod状态为“被驱逐&#xff08;evicted&#xff09;”表示Pod无法在当前节点上继续运行&#xff0c;已被集群从节点上移除。 问题分析&#xff1a; 节点磁盘空间不足 &#xff0c;使用df -h查看磁盘使用情况 可以看到根目录 / 已100%满&#x…

重学React(一):描述UI

背景&#xff1a;React现在已经更新到19了&#xff0c;文档地址也做了全面的更新&#xff0c;上一次系统性的学习还是在16-17的大版本更新。所以&#xff0c;现在就开始重新学习吧&#xff5e; 学习内容&#xff1a; React官网教程&#xff1a;https://zh-hans.react.dev/lea…

遨游通讯发布国产化旗舰三防手机AORO AU1:以自主可控重塑工业安全

在全球产业链加速重构的背景下&#xff0c;国产化技术突破已成为工业领域高质量发展的核心驱动力。作为专精特新中小企业&#xff0c;遨游通讯始终以“让世界更安全、更高效、更简单”为使命&#xff0c;深耕“危、急、特”场景智能通信设备的研发。近日&#xff0c;遨游通讯正…

【Python】Selenium切换网页的标签页的写法(全!!!)

在使用selenium做网站爬取测试的时候&#xff0c;我们经常会遇到一些需要点击的元素&#xff0c;才能点击到我们想要进入的页面&#xff0c; 于是我们就要模拟 不断地 点点点击 鼠标的样子。 这个时候网页上就会有很多的标签页&#xff0c;你的浏览器网页标签栏 be like: 那…

DeepSeek和Excel结合生成动态图表

文章目录 一、前言二、3D柱状图案例2.1、pyecharts可视化官网2.2、Bar3d-Bar3d_puch_card2.3、Deepseek2.4、WPS2.5、动态调整数据 一、前言 最近在找一些比较炫酷的动态图表&#xff0c;用于日常汇报&#xff0c;于是找到了 DeepseekExcel王牌组合&#xff0c;其等同于动态图…

Ubuntu20.04 部署llama-factory问题集

llama3 微调教程之 llama factory 的 安装部署与模型微调过程&#xff0c;模型量化和gguf转换。_llamafactory 部署-CSDN博客 1.跟着教程 llama-factory下载不下来 来&#xff0c;试着换源&#xff0c;多试几次&#xff0c;就可以成功了。。。 2.跟着教程&#xff0c;发现无法…

大语言模型助力 Support Case 分析,提升云服务效率

1. 背景 技术工单&#xff08;Support Case&#xff09;是企业在进行云平台操作的时候通常会用到的一种技术支持类型&#xff0c;提供的技术支持通常包括所有的云服务的使用问题、账单问题、限制额度提升等等。对于云平台的管理者而言&#xff0c;对各个 BU 所提的工单进行统计…

ubuntu磁盘挂载

1、‌查看磁盘设备及分区‌ 命令‌&#xff1a;列出所有块设备&#xff08;磁盘及分区&#xff09; lsblk 0表示此块未挂载 2、格式化分区 sudo mkfs.ext4 /dev/sdb 注意sdb换成自己的块名称 3、创建挂载点目录‌ sudo mkdir -p /mnt/data4、永久挂载 sudo blkid /dev…

chili3d调试笔记8 打印零件属性 浏览器元素展开

无效&#xff0c; 返回的是节点不是坐标啥的&#xff0c; 找他的属性 把document和selectednote&#xff08;空集&#xff09;传给handleshowproperty方法 怎么获得selectnotes和selectnotes的property值 有selectnotes运行这段就行了 明天再搞 ----------------------------…

新书速览|DeepSeek移动端AI应用开发:基于Android与iOS

《DeepSeek移动端AI应用开发&#xff1a;基于Android与iOS》 1 本书内容 《DeepSeek移动端AI应用开发:基于Android与iOS》深入剖析了DeepSeek平台的架构原理、API调用及开发实践等核心内容&#xff0c;助力读者在Android与iOS移动端高效集成DeepSeek API&#xff0c;打造出契…

Android调用springboot接口上传大字段,偶现接口超时的优化

介绍 最近有个功能&#xff0c;Android通过okhttp上传实体类&#xff0c;实体类包含一个大字段&#xff0c;上传的字符串长度达到300k&#xff0c;偶现接口超时的情况&#xff0c;大概100次有5次&#xff0c;看日志发现数据并没有到达接口&#xff0c;可能在网络传输中就超时了…

react组件之间如何使用接收到的className(封装一个按钮案例)

带有hover渐变效果 一、父组件 import LineGradientBox from ../line-gradient-box; import styles from ./index.module.scss;<LineGradientBoxfontSize{20}className{styles.btn_height}textSign upwidth"100%"onClick{() > {navigate(/sign-up);}} /> …

JavaScript 数组常用方法解析

1. concat - 合并数组 语法&#xff1a; const newArray oldArray.concat(value1, value2, ..., arrayN); 作用&#xff1a; 将当前数组与其他数组或值合并&#xff0c;返回一个新数组&#xff0c;原数组不变。 测试案例&#xff1a; const arr1 [1, 2, 3]; const arr2…

09.传输层协议 ——— TCP协议

文章目录 TCP协议 谈谈可靠性TCP协议格式 序号与确认序号窗口大小六个标志位 确认应答机制&#xff08;ACK&#xff09;超时重传机制连接管理机制 三次握手四次挥手 流量控制滑动窗口拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况TCP小结基于TCP的应用层协议 TCP协…

数字化转型“变形记”:中钧科技经营帮如何让企业长出“智慧骨骼”

数字化转型就像给企业安装一个"智慧引擎"&#xff0c;而中钧科技的经营帮平台就是这台引擎的智能控制系统。让我们用"人体"来打个比方——当企业的数据、流程、决策像神经脉络般打通&#xff0c;才能真正实现灵活运转。下面就以经营帮的五大核心板块为例&a…

【问题解决】centos7已经不维护了,如何继续使用yum源?

背景 CentOS 7 已于2024年6月30日停止维护&#xff0c;在停止维护后我们之前配置的国内镜像源大多都是空目录了&#xff0c;即在线国内镜像源不可用,就像下边这样提示&#xff1a; [rootbogon yum.repos.d]# yum install vim 已加载插件&#xff1a;fastestmirror Loading mi…

Redis 接收连接

阅读本文前&#xff0c;建议先看&#xff1a;Redis 事件循环&#xff08;Event Loop&#xff09;。 Redis 6 支持接收 3 种连接&#xff0c;对应的接收处理器如下&#xff1a; TCP&#xff1a;acceptTcpHandler&#xff1b;TLS&#xff1a;acceptTLSHandler&#xff1b;Unix …

【计算机视觉】CV实战项目- Face-and-Emotion-Recognition 人脸情绪识别

Face-and-Emotion-Recognition 项目详细介绍 项目概述项目功能项目目录结构项目运行方式1. 环境准备2. 数据准备3. 模型训练4. 模型运行 常见问题及解决方法1. **安装依赖问题**2. **数据集问题**3. **模型训练问题**4. **模型运行问题** 项目实战建议项目参考文献 项目概述 F…

基于国产 FPGA+ 龙芯2K1000处理器+翼辉国产操作系统继电保护装置测试装备解决方案

0 引言 近年来&#xff0c;我国自主可控芯片在国家政策和政 府的支持下发展迅速&#xff0c;并在电力、军工、机械、 通信、电子、医疗等领域掀起了国产化替代之 风&#xff0c;但在芯片自主可控和国产化替代方面还有明 显的不足之处。 2022年我国集成电路进口量多 达 5 3…