DOCKERized PHP-Application中的Sendmail不起作用

时间:2016-08-22 20:24:22

标签: php apache email docker sendmail

尝试使用PHP发送电子邮件时

function sendmailoversmtp($name, $mail, $message, $topic)

它不起作用。记录以下错误:

sh: 1: -t: not found

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

我的Dockerfile基于FROM php:7.0-apache

1 个答案:

答案 0 :(得分:0)

如果没有一些扩展设置,命令行sendmail将无法在容器中运行。 sendmail二进制文件通常会将文件放入mailqueue目录,以便邮件服务器进程获取然后发送。这需要将一些邮件服务器队列目录安装到容器中,或者尝试与容器服务一起运行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