讲师中心 微信公众号
AI工具推荐 视频效率加速

PHP如何读取文件并发送邮件_PHP读取文件内容作为邮件发送操作【方法】

阿枫姑娘_1080

阿枫姑娘_1080

发布时间:2026-02-12 16:39:11

|

981人浏览过

|

来源于php中文网

原创

PHP读取本地文件并发送邮件有五种方法:一、用mail()函数配合file_get_contents;二、用PHPMailer支持SMTP认证;三、用Swift Mailer构建MIME;四、用fopen流式读取大文件;五、将文件作Base64编码附件发送。

php如何读取文件并发送邮件_php读取文件内容作为邮件发送操作【方法】

如果您需要使用PHP读取本地文件内容,并将该内容作为邮件正文发送,则需确保服务器支持mail函数或已配置SMTP扩展。以下是实现此功能的多种方法:

一、使用内置mail()函数读取文件并发送

该方法依赖系统自带的sendmail服务或本地MTA配置,适用于Linux环境且无需额外扩展。它通过file_get_contents读取文件,再调用mail()发送纯文本邮件。

1、确认目标文件路径存在且PHP进程具有读取权限,例如:/var/www/data/report.txt。

2、使用file_get_contents读取文件全部内容,并赋值给变量$body。

立即学习“PHP免费学习笔记(深入)”;

3、设置邮件头信息,包括From、Content-Type和Charset,确保中文不乱码。

4、调用mail()函数,传入收件人地址、邮件主题、文件内容$body及邮件头变量$headers。

二、使用PHPMailer库读取文件并发送

PHPMailer提供更可靠的SMTP认证与HTML邮件支持,适合需要登录邮箱服务器(如Gmail、QQ邮箱)的场景。它能自动处理附件、编码和错误反馈。

1、通过Composer安装PHPMailer:composer require phpmailer/phpmailer。

2、引入PHPMailer类文件,创建PHPMailer实例并启用异常抛出模式。

3、配置SMTP主机、端口、用户名、密码及是否启用TLS/SSL加密。

4、使用file_get_contents读取指定路径的文件内容,设为邮件正文Body。

5、调用isHTML(false)设置为纯文本模式,或isHTML(true)配合mb_convert_encoding处理UTF-8中文。

三、使用Swift Mailer读取文件并发送

Swift Mailer是另一个轻量级邮件发送组件,支持流式内容加载与灵活的MIME构造。其消息对象可直接接受文件句柄或字符串内容,适合大文件分段读取场景。

1、通过Composer安装:composer require swiftmailer/swiftmailer。

2、创建Transport对象,配置SMTP参数(host、port、username、password、encryption)。

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载

3、初始化Mailer实例,并构建Message对象。

4、调用file_get_contents获取文件内容,使用setBody()方法注入正文。

5、设置收件人、发件人、主题等基础字段后,执行send()触发投递。

四、使用fopen逐行读取大文件并拼接发送

当待发送文件体积较大(如超过2MB),直接使用file_get_contents可能导致内存溢出。此方法采用流式读取,逐行载入并累积至缓冲区,控制内存占用。

1、使用fopen以只读方式打开文件,检查返回资源是否为有效句柄。

2、初始化空字符串$buffer,循环调用fgets读取每行内容并追加到$buffer。

3、每次追加后检查strlen($buffer)是否超出预设阈值(如1.5MB),超限则截断并记录警告。

4、关闭文件指针,将$buffer作为邮件正文传入选定的邮件发送函数。

5、在邮件头中添加X-File-Read-Mode: stream标识该邮件基于流式读取生成。

五、读取文件并作为邮件附件发送

某些业务要求将原始文件原样作为附件发送,而非仅发送内容。此时需构造MIME多部分结构,将文件二进制数据Base64编码后嵌入邮件体。

1、使用file_get_contents读取文件原始字节,并用base64_encode转换为ASCII字符串。

2、生成唯一边界字符串(boundary),用于分割邮件各部分。

3、构建邮件头,包含MIME-Version、Content-Type: multipart/mixed及对应boundary声明。

4、拼接邮件主体:第一部分为纯文本正文(可含文件名与简要说明),第二部分为application/octet-stream类型的附件块。

5、在附件块中写入Content-Disposition: attachment; filename="original_file.txt"及编码后的内容。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

837

2026.03.03

Swift编程与iOS/macOS应用开发教程合集
Swift编程与iOS/macOS应用开发教程合集

面向苹果生态开发者,系统讲解 Swift 语言核心与 iOS/macOS 应用开发,涵盖 Swift 语法基础、Xcode 开发环境搭建与项目管理、SwiftUI 声明式 UI 开发、UIKit 与 SwiftUI 混合开发策略、Combine 响应式编程框架、数据持久化(SwiftData/Core Data/UserDefaults)、网络请求与 JSON 解析、App 签名/打包/TestFlight 测试与 App Store

1442

2026.06.03

composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

364

2023.12.25

Composer 安装与快速入门指南
Composer 安装与快速入门指南

面向 PHP 开发新手,详细介绍 Composer 的下载安装方式(本地安装与全局安装)、国内镜像源(阿里云/腾讯云)加速配置、composer.json 与 composer.lock 文件的作用解析、require/install/update 等核心命令的使用方法,帮助开发者快速掌握 PHP 依赖管理的基本工作流。

603

2026.04.10

Composer 依赖管理与版本控制实战
Composer 依赖管理与版本控制实战

深入讲解 Composer 的依赖管理机制,涵盖语义化版本号规范、版本约束符(^、~、*、>=)的区别与最佳实践、composer.lock 在团队协作中的锁定策略、依赖冲突的排查与解决方法、require-dev 与生产依赖的分离管理、平台依赖检查(platform-check)等进阶内容,帮助开发者在项目中精准控制依赖版本、避免"依赖地狱"。

367

2026.04.10

Composer 自定义包开发与发布教程合集
Composer 自定义包开发与发布教程合集

以实际项目为导向,讲解如何从零创建一个符合规范的 Composer 包,涵盖 composer.json 元信息配置、PSR-4 自动加载规则设置、命名空间规划、单元测试集成、README 与 LICENSE 编写规范,以及将包提交到 Packagist 公共仓库或搭建 Satis/Private Packagist 私有仓库的完整发布流程,帮助开发者将可复用代码封装为标准化的 Composer 包。

369

2026.04.10

Composer 自动加载机制与性能优化
Composer 自动加载机制与性能优化

系统剖析 Composer 的自动加载体系,讲解 PSR-0 与 PSR-4 自动加载标准的区别与演进、classmap 与 files 加载方式的适用场景、autoload_real.php 源码级加载流程解析,同时介绍 composer dump-autoload -o 优化加载映射、APCu 缓存加速、authoritative-classmap 配置等生产环境性能优化手段,帮助开发者深入理解自动加载原理并提升项目启动速度。

320

2026.04.13

Composer 在主流 PHP 框架中的应用实践
Composer 在主流 PHP 框架中的应用实践

结合 Laravel、ThinkPHP、Symfony 等主流 PHP 框架的实际场景,讲解 Composer 在框架项目中的典型应用,包括通过 create-project 初始化框架项目、安装与管理第三方扩展包、scripts 钩子(post-install/post-update)自动执行部署任务、自定义 Installer 插件开发、多项目共享 vendor 依赖的 Monorepo 工作流管理,帮助开发者在真实框架项目中充分发

523

2026.04.13

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

40

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn