我正在尝试使用来自 php的后缀图像和 msmtp 设置电子邮件。使用 msmtp 从命令行从 wordpress 容器到 postfix 发送电子邮件(我使用的是 docker compose,但我认为它不相关)。但是在php中它不起作用。
后缀日志显示:
Feb 14 12:00:09 36a1774df087 postfix/smtpd[141]: connect from volume_wordpress_1.volume_default[172.23.0.4]
Feb 14 12:00:09 36a1774df087 postfix/smtpd[141]: warning: Illegal address syntax from volume_wordpress_1.volume_default[172.23.0.4] in MAIL command: <[email protected]>
Feb 14 12:00:09 36a1774df087 postfix/smtpd[141]: disconnect from volume_wordpress_1.volume_default[172.23.0.4]
Feb 14 12:03:29 36a1774df087 postfix/anvil[143]: statistics: max connection rate 1/60s for (smtp:172.23.0.4) at Feb 14 11:58:44
Feb 14 12:03:29 36a1774df087 postfix/anvil[143]: statistics: max connection count 1 for (smtp:172.23.0.4) at Feb 14 11:58:44
Feb 14 12:03:29 36a1774df087 postfix/anvil[143]: statistics: max cache size 1 at Feb 14 11:58:44
php 配置如下所示:
sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t -i"
当我从终端运行它时,相同的命令起作用。但是从php它显示上面的错误。
是否需要更改[email protected](是内网公用机器地址,wordpress是docker-compose.yml中的服务名称)?我怎样才能做到这一点?
我在 StackOveflow 上的这个问题的答案中发现了这个问题使用 msmtp 通过终端发送邮件工作正常,但不适用于 php mail()
问题是对 /etc/msmtprc 的文件权限,它由 root 拥有,执行:
解决了这个问题