尝试使用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二进制文件通常将文件拖放到mailqueue目录中,以供邮件服务器进程提取然后发送。这将需要将某些邮件服务器队列目录安装到容器中,或者尝试与容器服务一起运行sendmail进程。两者都不是很“Dockery”。

SMTP

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

10-05 21:50