6

我将尝试描述我的问题:

为了在本地环境中调试外发电子邮件,我安装了 mailcatcher ( http://mailcatcher.me/ ),但在捕获从 web 发送的邮件时遇到了一些问题。如果我运行只包含一个 mail() 调用的脚本,一切都很好,我可以在 mailcatcher 127.0.0.1:1080 中看到发送的电子邮件。但是当我尝试从 Web 浏览器访问相同的脚本时,mail() 函数返回 false,浏览器中没有显示任何错误,错误日志中没有任何错误。在邮件日志中,我什至可以看到对 mail() 函数的调用。

我不确定,可能是我的 nginx/php-fpm 配置错误,或者权限有问题。

selinux 被禁用。

如果您知道解决方案,请提供帮助。

提前致谢

4

4 回答 4

8

我在 ubuntu 14.04 上遇到了同样的问题。

/etc/php5/cli/php.ini/etc/php5/fpm/php.ini具有相同的sendmail_path配置,但只能php-cli发送电子邮件。

对于我的环境,Mailcatcher在远程服务器上工作,我使用catchmail命令联系它。

这是sendmail_path我使用的:

sendmail_path = /usr/bin/env catchmail --smtp-ip mailcatcher-ip -f address@example.com

对于该fpm php.ini文件,我必须指定catchmail邮件功能正常工作的完整路径:

sendmail_path = /usr/bin/env /usr/local/bin/catchmail --smtp-ip mailcatcher -f address@example.com
于 2015-01-02T15:38:58.647 回答
3

如果您使用 Mac OS Sierra 或更高版本:
这里是正确的位置catchmail

更改sendmail_path = /usr/bin/env catchmail -f catcher@mailcatcher.me
sendmail_path = /usr/local/bin/catchmail -f someone@domain.com

于 2018-10-25T09:45:57.370 回答
2

使用 php-fpm 它可以与提供的 RVM(?) 包装器脚本一起工作。

sendmail_path = /usr/local/rvm/wrappers/default/catchmail
于 2015-04-14T09:00:03.643 回答
0

在使用 PHP-FPM 和 PHP 5.6 的 CentOS 7 上,我发现我必须修改/etc/php-fpm.d/www.conf而不是添加 ini 文件/etc/php.d或修改/etc/php.ini. 这也需要@Alexis No's answer中的完整路径。

php_admin_value[sendmail_path] = '/usr/bin/env GEM_PATH=/usr/share/gems:/usr/local/share/gems:/usr/share/rubygems:$HOME/.gem/ruby /usr/local/bin/catchmail --smtp-ip 127.0.0.1 --smtp-port 1025 -f mailcatcher@example.com'

更新:最近我发现在某些环境中将 php-fpm 作为 apache 运行时 GEM_PATH 为零。无论我尝试了什么(/etc/gemrc),除了GEM_PATH作为该命令的一部分注入之外,我都无法做到。

于 2016-06-03T14:14:09.013 回答