PHP mail() 返回 FALSE 但整个 rainloop 工作正常 - Postfix、Dovecot、PHP 7.3

PHP mail() 返回 FALSE 但整个 rainloop 工作正常 - Postfix、Dovecot、PHP 7.3

我之前遇到过这个问题,但不知怎么设法修复了它。一个月后,我不得不重新安装 Dovecot 和 Postfix,但同样的错误又出现了。

在我的php.ini位于/etc/php/7.3/apache2/发送邮件路径设置

sendmail_path = /etc/postfix

它写道我有一个权限问题:

user@occamy:/etc$ sudo tail /var/log/mail.warn
Oct 21 16:27:36 localhost postfix/sendmail[20073]: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied
Oct 21 16:28:36 localhost postfix/sendmail[20079]: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied
Oct 21 16:35:02 localhost postfix/postfix-script[20270]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Oct 21 16:35:02 localhost postfix/postfix-script[20273]: warning: symlink leaves directory: /etc/postfix/./postfix_ab/makedefs.out
Oct 21 16:35:07 localhost postfix/sendmail[20328]: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied
Oct 21 16:35:32 localhost postfix/sendmail[20350]: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied
Oct 21 16:37:00 localhost postfix/postfix-script[20565]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Oct 21 16:37:00 localhost postfix/postfix-script[20568]: warning: symlink leaves directory: /etc/postfix/./postfix_ab/makedefs.out
Oct 21 16:37:07 localhost postfix/sendmail[20623]: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied
Oct 21 16:37:15 localhost postfix/sendmail[20625]: fatal: /etc/postfix/dynamicmaps.cf: file open failed: Permission denied

/etc/postfix/dynamicmaps.cf

我在 main.cf 中遇到了同样的问题。我用 chmod 775 解决了这个问题,但我想这不是很好...

然后它写了这个权限错误。上面最奇怪的是我在获取电子邮件时执行的这个操作:

  1. 发送 mail() 时 Mail 返回 FALSE
  2. 改变整体后缀目录权限 775 并发送邮件 - 返回 TRUE
  3. 未收到电子邮件
  4. 将每个文件的所有权限改回以前的状态
  5. 电子邮件已神奇地收到,但无法再次发送。然后从第 1 点重复

另外当我设置动态地图.cfchmod 775sudo postconf-m写道:

btree
cidr
environ
fail
hash
inline
internal
memcache
nis
pipemap
proxy
randmap
regexp
socketmap
static
tcp
texthash
unionmap
unix

mysql缺少这些权限设置。

提前感谢您的回复!

答案1

您自定义了该sendmail_path参数,但不知道它的作用。

来自PHP 文档

其中发送邮件可以找到程序,通常是 /usr/sbin/sendmail 或 /usr/lib/sendmail。配置会诚实地尝试为您找到这个并设置默认值,但如果失败,您可以在此处设置。

您很可能不需要对其进行调整,因为如果所有包都来自包管理器,它将默认工作,如果您确实需要对其进行调整,那么您当然不能将文件夹作为值传递。

Postfix 的权限错误可能是因为文件所有者设置不正确。一般来说,chmod这种chown情况/etc至少应该不常见。

相关内容