尝试使用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