Sendmail in DOCKERized PHP-应用程序不工作

Sendmail in DOCKERized PHP-Application doesn't work

尝试使用 PHP

发送电子邮件时
function sendmailoversmtp($name, $mail, $message, $topic)

没用。记录了以下错误:

sh: 1: -t: not found

-t -i在我的php.ini中配置为sendmail_path。为什么找不到?

我的 Dockerfile 基于 FROM php:7.0-apache

如果没有一些扩展设置,命令行 sendmail 将无法在容器中运行。 sendmail 二进制文件通常会将文件放入邮件队列目录中,以便邮件服务器进程获取并发送。这将需要将一些邮件服务器队列目录安装到容器中或尝试 运行 发送邮件进程以及您的容器服务。两者都不是很"Dockery".

sSMTP

sSMTP 是一个简单的 MTA,用于将邮件从计算机传送到邮件中心(SMTP 服务器)

在容器中安装 ssmtp 并配置 /etc/ssmtp/ssmtp.conf 通过真正的 smtp 服务器发送电子邮件。

你可以 运行 一个 mail server in another container, use an existing service, or use an external mail host。在 Docker 主机本身上通常会有一个邮件服务器 运行ning,但它可能并不总是可以从容器中寻址或在不同主机之间以相同的方式访问。

然后配置PHP使用ssmtp

sendmail_path = /usr/sbin/ssmtp -t