尝试使用 PHP 发送电子邮件时
function sendmailoversmtp($name, $mail, $message, $topic)
这是行不通的。记录了以下错误:
sh: 1: -t: not found
-t -i
配置为 sendmail_path
在我的 php.ini 中。为什么找不到?我的 Dockerfile 基于
FROM php:7.0-apache
最佳答案
命令行 sendmail
如果没有一些扩展设置,将无法在容器中工作。 sendmail
二进制文件通常将文件放入邮件队列目录,供邮件服务器进程接收然后发送。这需要将一些邮件服务器队列目录安装到容器中,或者尝试与容器服务一起运行 sendmail 进程。两者都不是很“Dockery”。
sSMTP
sSMTP是一个简单的 MTA,用于将邮件从计算机传送到邮件中心(SMTP 服务器)
安装 ssmtp
在容器中配置 /etc/ssmtp/ssmtp.conf
通过真正的 smtp 服务器发送电子邮件。
你可以运行一个 mail server in another container 、使用现有服务或使用 external mail host .通常会有一个邮件服务器运行在 Docker 主机本身上,但它可能并不总是可以从容器中寻址或在不同主机之间以相同的方式访问。
然后配置PHP使用ssmtp
sendmail_path = /usr/sbin/ssmtp -t
关于php - DOCKERized PHP 应用程序中的 Sendmail 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39088124/