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://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

相关推荐

  • APP服务器租赁费用一年多少?,哪家便宜?

    App服务器租赁费用一年通常在数千元至数十万元之间,具体取决于应用规模、并发用户数、数据存储需求及机房等级,对于初创期的小型App,基础配置年费约3000-8000元;中型应用年费在2万-10万元区间;大型或高并发App则需20万-100万元甚至更高,费用由哪些因素决定服务器配置与规格CPU核心数、内存大小、硬……

    2026年8月22日
    200
  • 512g内存条服务器多少钱

    512g内存条服务器的价格并非固定数值,一台搭载512GB ECC内存的服务器,月租费用普遍在800元至5000元区间,具体取决于CPU核心数、存储类型、带宽资源以及服务商的服务等级,如果你正在寻找这类配置,大概率是用于虚拟化集群、中大型数据库或高性能计算场景,价格波动主要来自两个维度:硬件规格和服务模式,而服……

    2026年8月21日
    300
  • ipc端sip服务器端口号是多少,默认端口是什么?

    IPC端的SIP服务器端口号默认是5060(UDP/TCP),若启用TLS加密传输则为5061,这是绝大多数IP摄像机、NVR、语音网关等终端设备在对接SIP服务器时的标准配置,也是运营商平台和自建SIP软交换系统普遍采用的基础参数,SIP协议端口的核心参数拆解SIP(Session Initiation Pr……

    2026年8月12日
    1100
  • 一台服务器一般能承受多少QPS?,QPS多少算高负载?

    一台服务器能承受的QPS从几百到几十万不等,核心取决于硬件配置、软件架构和业务场景,没有固定标准,影响服务器QPS的核心因素硬件配置决定上限服务器的物理硬件是QPS的底座,CPU主频和核心数直接影响计算能力,内存大小决定能承载的并发连接数,磁盘类型(HDD或NVMe SSD)影响I/O延迟,网卡带宽则限制吞吐量……

    2026年8月3日
    800
  • linux socket安装失败怎么办?linux socket库安装教程

    Linux Socket 并非需要单独“安装”的软件包,而是 Linux 内核内置的标准网络通信接口,直接通过代码调用即可使用,无需额外配置环境,很多刚接触 Linux 开发的朋友,看到“Socket”这个词,第一反应是去软件中心或者用 apt/yum 搜一个安装包,这种直觉很正常,毕竟我们习惯了安装浏览器、安……

    2026年7月5日
    2600
  • linux系统如何安装宋体?linux安装字体失败解决方法

    在Linux系统中安装宋体最稳妥的方式是通过命令行下载字体文件并复制到系统字体目录,随后更新字体缓存,即可在WPS、LibreOffice及浏览器中直接使用,无需额外付费或复杂配置,很多用户刚接触Linux时,面对黑框框般的终端界面,第一反应往往是“我的中文怎么显示成方块?”或者“为什么文档排版乱成一团?”,这……

    2026年7月11日
    21700
  • linux read命令怎么用?linux read命令参数详解

    Linux中的read命令是Shell脚本中用于从标准输入或文件描述符读取数据的内置指令,它支持超时控制、回显开关及分隔符自定义,是处理交互式输入和文件解析的核心工具,在Linux系统管理的日常工作中,我们经常会遇到需要程序与用户进行“对话”的场景,比如编写一个自动化部署脚本,需要确认用户是否真的要覆盖现有配置……

    2026年7月8日
    4800
  • 如何在Linux安装Phalcon?phalcon安装教程

    在Linux环境下安装Phalcon最高效的方式是使用PECL扩展或编译源码,推荐优先尝试PECL命令,因其能自动处理依赖关系并集成至PHP运行环境,Phalcon作为一个基于C语言编写的Web框架,其核心优势在于极低的资源占用和惊人的执行速度,对于追求高性能的开发者而言,在Linux服务器上部署它并非简单的复……

    2026年7月7日
    19200
  • 一颗服务器x86芯片到底多少钱,哪个牌子性价比高?

    一颗服务器x86芯片的价格范围并非固定值,主流型号集中在几百到几万美元之间,具体取决于核心数、频率、缓存以及你是买零售片还是批量采购,一颗服务器CPU的成本,从你更换一台老旧服务器的单颗芯片,到采购最新一代旗舰处理器,价格差异可以高达数十倍,在2026年的今天,市场格局依然由Intel和AMD主导,两者在不同层……

    2026年8月6日
    800
  • 服务器50M宽带一年多少钱,哪个服务商最便宜?

    服务器50M宽带的年费用并非固定值,通常在1000元至8000元不等,具体取决于带宽类型(共享或独享)、线路品质(单线或BGP)以及服务商是否具备合规资质, 对于长期稳定运行的企业业务,选择持牌自营机房的服务商,能将年成本控制在3000元至6000元之间,同时避免因带宽虚标或线路不稳定导致的隐性损失,50M服务……

    2026年8月13日
    200

发表回复

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