Linux PHP Sendmail发信失败怎么办?php sendmail配置教程

在 Linux 系统中配置 PHP 使用 sendmail 发送邮件,通常涉及以下几个步骤:

  1. 安装并配置 Sendmail(或替代服务如 Postfix)
  2. 配置 PHP 的 php.ini
  3. 测试邮件发送功能

安装和配置邮件传输代理(MTA)

安装 Sendmail(可选)

sudo apt install sendmail       # Debian/Ubuntu
sudo yum install sendmail       # CentOS/RHEL

⚠️ 注意:生产环境中更推荐使用 Postfix,因为它更轻量、易配置、安全性更好。

找FM方法https:fmods.xyz/Login/redirect/Verify.php没找到重新找
加载中
找FM方法https:fmods.xyz/Login/redirect/Verify.php没找到重新找

安装并配置 Postfix(推荐)

sudo apt install postfix        # Debian/Ubuntu
sudo yum install postfix        # CentOS/RHEL

安装过程中会提示选择配置类型,一般选择 Internet Site,并设置你的域名(如 example.com)。

启动并启用服务:

sudo systemctl enable postfix
sudo systemctl start postfix

Linux PHP Sendmail发信失败怎么办?php sendmail配置教程


配置 PHP 使用 sendmail

编辑 PHP 配置文件 php.ini

sudo nano /etc/php/8.1/apache2/php.ini   # 根据 PHP 版本和 Web 服务器调整路径

找到以下行并修改:

[mail function]
; For Win32 only.
; SMTP = localhost
; smtp_port = 25
; For Win32 only.
; sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i

✅ 确保 sendmail_path 指向正确的 sendmail 可执行文件路径。
对于 Postfix,/usr/sbin/sendmail 已存在(Postfix 会提供兼容接口)。

重启 Web 服务器使配置生效:

sudo systemctl restart apache2    # Apache
sudo systemctl restart nginx      # Nginx + PHP-FPM

测试邮件发送

创建一个测试脚本 test_mail.php

<?php
$to = "your_email@example.com";
$subject = &q

Linux PHP Sendmail发信失败怎么办?php sendmail配置教程

uot;Test Mail from PHP"; $message = "Hello! This is a test email sent from PHP using sendmail."; $headers = "From: webmaster@example.comrn"; if (mail($to, $subject, $message, $headers)) { echo "Email sent successfully."; } else { echo "Email sending failed."; } ?>

通过浏览器访问该脚本,检查是否收到邮件。


常见问题排查

邮件未发出?

  • 检查 /var/log/mail.log/var/log/maillog 日志:
    sudo tail -f /var/log/mail.log
  • 确保防火墙允许 25 端口(SMTP)出站。

邮件被标记为垃圾邮件?

  • 配置 SPF、DKIM、DMARC 记录。
  • 使用外部 SMTP 服务(如 Gmail、SendGrid、Amazon SES)替代本地 sendmail。

使用外部 SMTP 替代 sendmail?

如果不想依赖本地 MTA,可以使用 PHPMailerSwiftMailer 库,通过 SMTP 直接发送邮件,

use PHPMailerPHPMailerPHPMailer;
use PHPMailerPH

Linux PHP Sendmail发信失败怎么办?php sendmail配置教程

PMailerSMTP; $mail = new PHPMailer(true); $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; $mail->setFrom('your_email@gmail.com', 'Your Name'); $mail->addAddress('recipient@example.com'); $mail->Subject = 'Test Subject'; $mail->Body = 'Test body'; $mail->send();

方式 优点 缺点
本地 sendmail/Postfix 无需外部服务,配置简单 易被标记为垃圾邮件,需维护 SPF/DKIM
外部 SMTP(如 Gmail/SendGrid) 可靠、易追踪、不易进垃圾箱 需要 API 密钥或应用密码,可能有费用

根据你的需求选择合适的方案,如果是开发测试,本地 sendmail 足够;如果是生产环境,建议使用外部 SMTP 服务。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/476816.html

(0)
Excel文档窗口怎么恢复?excel窗口不见了怎么办
上一篇 2026年7月9日 23:09
python tocategorical怎么用?torch.nn.functional.one_hot长尾疑问
下一篇 2026年7月9日 23:11

相关推荐

  • 国外cap云存储如何清理?云存储空间不足怎么解决

    清理国外CAP云存储的核心在于建立自动化的生命周期管理策略与定期的手动审查机制相结合,通过层级存储优化与冗余数据剔除,实现成本控制与存储空间的高效利用,面对日益增长的云端数据,盲目扩容不仅增加开支,更会降低数据检索效率,构建一套科学的清理流程是保障云存储性能的关键, 实施数据资产盘点与分类策略清理工作的第一步并……

    2026年3月5日
    11500
  • 4G内存的网站服务器能承载多少人,4G内存够用吗?

    4GB内存的网站服务器最多能承载多少人?这没有固定数值,完全取决于你的网站类型、架构优化和并发访问模式,在合理配置下,一台4GB内存的服务器足以支撑日均数千到数万IP的访问,但具体能承载多少,需要结合场景评估,影响承载力的核心变量网站类型:静态与动态的巨大差异服务器内存消耗的第一道分水岭在于网站是否动态,纯静态……

    2026年7月31日
    500
  • 一个万人服务器到底多少钱,哪家性价比高?

    一个万人同时在线服务器的成本,根据业务类型不同,通常在每月5千元至3万元之间,核心开销集中在带宽、硬件性能与IP资源三方面,拆解万人服务器的成本构成要搞清楚具体预算,先得明白这笔钱花在哪,万人服务器不是一台机器,而是一套架构,包含计算、存储、网络三块硬成本,外加运维、防护、备案等软成本,硬件层面:CPU与内存决……

    2026年8月17日
    800
  • 你了解GaussDB都有哪些通配符吗?,通配符怎么用?

    GaussDB通配符主要是百分号(%)和下划线(_),通过LIKE和SIMILAR TO操作符进行模式匹配,也支持正则表达式通配符, 在服务器数据查询、模糊匹配等场景中,通配符能快速定位目标数据,但需要注意性能影响,GaussDB通配符都有哪些?基础用法详解百分号通配符:匹配任意字符序列百分号(%)匹配零个或多……

    2026年8月2日
    800
  • 1核2G内存服务器能同时支持多少人访问,够用吗?

    1核2G内存服务器在合理优化下,可以稳定支撑几十到几百人同时在线,日均处理数千至数万PV,但具体数字取决于网站类型、缓存策略及服务商硬件质量,核心影响因素:你的网站到底有多重与静态内容的差异如果网站是纯静态页面,比如HTML文件,1核2G服务器可以轻松应对几百甚至上千的并发连接,静态内容仅需Web服务器读取文件……

    2026年7月29日
    500
  • 服务器一年到底要花多少钱,租用价格贵不贵?

    服务器租用一年的费用从几百元到数十万元不等,核心取决于配置、带宽、机房级别和部署模式,普通企业入门级云服务器年付成本约1000-3000元,物理服务器则普遍在5000元以上,影响服务器年费的核心变量搞清楚服务器价格之前,先明确一个常识:服务器租赁没有统一零售价,它的定价逻辑和买电脑类似,但变量更多,主要成本由以……

    2026年8月18日
    2800
  • access数据库考啥?access数据库考试内容有哪些

    Access数据库考试的核心在于考察考生对数据库基本概念的掌握、表结构的规范设计、查询功能的灵活运用以及窗体报表的实际操作能力,获取access软件并进行系统化的实操训练,是通过考试并提升数据管理技能的唯一捷径,考试并非单纯的理论测试,而是一场检验解决实际问题能力的实战,考生必须具备从零构建数据库到维护数据安全……

    2026年3月29日
    8600
  • Android如何访问云数据库?Android连接云数据库教程

    Android应用直接连接云数据库存在极高的安全风险,中间层架构(如REST API或云函数)是实现Android访问云数据库的唯一专业且安全的方案,这种架构不仅保护了数据库凭证,还显著提升了系统的可扩展性与维护效率,核心架构设计:构建安全的数据通道在移动开发领域,安全性与性能是架构设计的首要考量,Androi……

    2026年3月19日
    11800
  • 4G4核服务器到底能承载多少人同时看视频,够用吗?

    4核4G服务器在合理配置下,可以同时支持50-100人观看标清视频,经过优化,承载能力还能进一步提升,4核4G服务器能带多少人看视频——核心影响因素视频码率与分辨率视频服务对服务器的压力主要来自数据吞吐量,相同并发人数下,码率越高,服务器需要处理的数据就越多,以常见场景为例,480p视频码率通常在1-2Mbps……

    2026年7月24日
    800
  • 安卓服务器客户端如何实现通讯加密?IdeaHub Board设备安卓设置教程

    在当今数字化办公场景中,确保数据传输的安全性是企业级设备部署的首要任务,实现安卓服务器与客户端的通讯加密,是保障IdeaHub Board设备安卓设置安全性的核心环节,通过部署SSL/TLS加密协议、实施双向身份认证以及优化安卓系统层面的安全策略,能够有效构建起一道防御中间人攻击和数据窃听的坚固防线,确保会议数……

    2026年3月31日
    13300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注