簡體   English   中英

sendmail 不適用於 chrooted php-fpm 和 nginx

[英]sendmail not working with chrooted php-fpm and nginx

我正在 Ubuntu 16.04 上使用 nginx 和 php-fpm 7.4 運行多站點設置。 所有網站都被 chroot 了,一切都像魅力一樣運行。 除了通過 sendmail 的 mail()。 (php-fpm 版本在這里應該無關緊要,我從 7.1 開始就在努力解決這個問題)。

Sendmail 和 postfix 正在運行和配置。 此行發送電子郵件。

echo "Subject: sendmail test" | /sbin/sendmail -t -i root@example.com

通過 PHP 嘗試“相同”不起作用:

mail("foobar@gmail.com","Testing","It's a test.", "root@example.com");

不起作用。 郵件()返回假。 郵件日志 (/var/log/mail.log) 保持為空。 我為 sendmail 配置了日志

php_value[mail.log] = /logs/mail.log

此日志顯示呼叫,例如

[2020 年 10 月 16 日 21:17:46 歐洲/柏林] [/htdocs/mail.php:8] 上的 mail():收件人:foobar@gmail.com -- 標題:root@example.com -- 主題:測試

我還安裝了 mini_sendmail ( https://acme.com/software/mini_sendmail/ ),最新版本,因為我意識到 sendmail 需要十幾個文件,我必須將這些文件安裝到我的 chrooted 文件夾中。 所以我下載了 mini_sendmail,將其重命名為 sendmail 並將其放入 chrooted 文件夾/var/nginx/example_com/usr/sbin/sendmail

使用 php 從命令行運行腳本,php-cgi 也可以:

php-cgi mail.php
php-cgi mail.php

phpinfo() 還顯示,一切都已配置(發送郵件路徑)。 shell-exec 和 exec 是允許的函數。 /bin/sh 也在 chroot-jail 中。 一切似乎都沒問題。

任何想法,我在這里缺少什么? 我什至沒有收到錯誤消息,這可以幫助我。

centos 7、nginx 1.18、php-fpm 7.4也是如此。

從 PHP Web 應用程序 (mantisbt) 發送郵件 - 什么也沒發生,所有服務器日志都是空的(nginx error.log、php-fpm error.log、maillog、messages、selinux audit,...)

從命令行發送工作正常:

php -r'mail("user@domain.tld", "Subject", "Body");'

解決了

我們終於發現是無效的發件人電子郵件地址(發件人:)導致了問題。 從地址修復后,一切正常。


一些有用的鏈接:

PHP 郵件功能在 Centos 服務器上不起作用https://www.mantisbt.org/forums/viewtopic.php?f=3&t=15398

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM