新闻中心

如何用PHP代码发送电子邮件_PHP电子邮件发送功能实现与配置教程

2025-10-31
浏览次数:
返回列表
首先检查SMTP配置或函数调用问题,再通过mail()函数测试基础邮件发送,接着使用PHPMailer实现支持SSL加密的SMTP邮件发送,最后可配置本地Sendmail服务提升可靠性。

如何用php代码发送电子邮件_php电子邮件发送功能实现与配置教程

如果您尝试通过PHP脚本向用户发送电子邮件,但邮件未能成功送达,则可能是由于SMTP配置错误或函数调用不当。以下是实现和配置PHP电子邮件发送功能的具体步骤。

本文运行环境:Dell XPS 13,Ubuntu 24.04

一、使用mail()函数发送基础邮件

PHP内置的mail()函数可用于发送简单文本邮件,无需额外扩展支持,适合本地开发环境测试。

1、确保php.ini中已启用mail函数,并正确配置了sendmail路径或SMTP参数。检查是否启用了extension=php_openssl.dll(Windows)或安装了sendmail组件(Linux)

2、编写基础邮件发送代码:

$to = "recipient@example.com";
$subject = "测试邮件";
$message = "这是一封由PHP mail()函数发送的测试邮件。";
$headers = "From: sender@example.com";

if (mail($to, $subject, $message, $headers)) {
    echo "邮件已成功发送";
} else {
    echo "邮件发送失败";
}
?>

二、使用PHPMailer库发送安全邮件

PHPMailer提供了更灵活的邮件发送方式,支持SMTP认证、SSL加密以及HTML内容格式,适用于生产环境。

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

2、创建PHP脚本并引入自动加载文件:

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
require 'vendor/autoload.php';

$mail = new PHPMailer(true);
?>

3、配置SMTP连接信息:

$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'your_email@gmail.com';
$mail->Password = 'your_app_password';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;

4、设置发件人、收件人及邮件内容:

NameGPT NameGPT

免费的名称生成器,AI驱动在线生成企业名称及Logo

NameGPT 119 查看详情 NameGPT

$mail->setFrom('your_email@gmail.com', '发件人名称');
$mail->addAddress('recipient@example.com', '收件人姓名');
$mail->isHTML(true);
$mail->Subject = 'PHPMailer测试邮件';
$mail->Body = '

欢迎使用PHPMailer

这是一个支持HTML格式的邮件示例

';
$mail->AltBody = '纯文本版本:这是一个支持HTML格式的邮件示例';

5、发送邮件并捕获异常:

try {
    $mail->send();
    echo '邮件已发送';
} catch (Exception $e) {
    echo "邮件发送失败:{$mail->ErrorInfo}";
}

三、配置本地Sendmail服务发送邮件

在Linux服务器上可通过配置Sendmail服务使mail()函数正常工作,避免依赖第三方SMTP。

1、安装sendmail工具包:sudo apt install sendmail sendmail-cf

2、启动并启用服务:
sudo service sendmail start
sudo systemctl enable sendmail

3、修改php.ini中的[mail function]部分:

sendmail_path = /usr/sbin/sendmail -t -i

4、重启Web服务以应用更改:
sudo systemctl restart apache2

5、使用mail()函数测试是否可发送:

if (mail('test@domain.com', '本地Sendmail测试', '此邮件通过本地Sendmail发出')) {
    echo '邮件发送成功';
} else {
    echo '邮件发送失败';
}
?>

以上就是如何用PHP代码发送电子邮件_PHP电子邮件发送功能实现与配置教程的详细内容,更多请关注php中文网其它相关文章!


# 这是一个  # 泰安网站建设如何推广  # sigua seo APK  # 怎样找兴趣网站推广呢视频  # 山西免费推广网站  # 病毒营销的推广方法  # 东营品牌建设网站  # 网站建设与推广认可l火17星  # 互动营销推广员  # 泰州关键词排名推荐厂家  # seo关键词优化技巧  # 故障排除  # 格式转换  # 安全策略  # 发送邮件  # php代码使用  # 多个  # 如何用  # 发送电子邮件  # 弄到  # 邮件发送  # ubun  # app  # apache  # windows  # composer  # html  # word  # linux  # php 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: MAC如何将整个网页截长图_MAC使用Safari的导出为PDF或第三方工具  荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】  CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题  Highcharts 雷达图径向轴标签定制指南:利用多Y轴实现数值标注  Discord Slash 命令响应超时问题的异步解决方案  DLsite中文平台入口 DLsite官网内容在线查看  J*aScript中正确使用querySelectorAll与复杂CSS选择器  J*aScript类型检查_j*ascript代码规范  夸克AO3官网入口_AO3镜像网站2025推荐  2026春节假期票务安排_2026春节放假购票指南  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  海量存储:机器视觉智能化的核心基石  steam官方网页快速访问 steam账号注册全流程  Golang指针如何与map组合使用_Golang map指针组合实践  飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】  Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接  MAC怎么在地图App里使用“四处看看”_MAC体验部分城市的3D实景街景  蛙漫2日版入口 WAMAN2(日版)无删减漫画官网链接  在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验  Tabulator表格日期时间排序问题及自定义解决方案  火锅吃太多会怎样 火锅吃太多会上火吗  解决Python logging 中 datefmt 导致时间戳固定不变的问题  Excel文件在线转换快速入口 Excel在线格式转换网站  解决移动端滚动问题的overflow属性应用指南  如何使用Node.js csv 包按条件移除含空字段的CSV记录  铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧  LINUX怎么设置定时任务_LINUX crontab配置教程  怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】  Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略  Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值  在命令行怎么运行html项目_命令行运行html项目方法【教程】  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  如何在 Windows 11 中启动游戏手柄设置  消息称三星明年 2 月正式发布 HBM4,与 SK 海力士同台竞技  微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法  Composer如何处理Git子模块(submodule)依赖_Composer与Git Submodule的对比与选择  c++如何使用chrono库处理时间_c++标准库时间与日期操作  电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】  钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧  网易大神账号申诉需要多久_网易大神账号申诉流程说明  中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】  修复二维数组索引越界异常:一维循环到二维坐标的正确映射  Win11怎么查看电脑配置_Win11硬件配置检测工具使用  PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符  Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑  手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析  Win11怎么修改默认浏览器_Windows 11设置Chrome为默认  黑猫投诉统一入口官网 消费者权益保护投诉平台  cad如何更改注释性对象的比例_cad注释性比例调整方法 

搜索