php - DOCKERized PHP 应用程序中的 Sendmail 不起作用

标签 php apache email docker sendmail

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

相关文章:

wcf - Duplex or request-reply with Apache ActiveMQ WCF Binding 配置问题

php - 在 apache tomcat 服务器上使用 CakePHP

email - 将电子邮件签名添加到电子邮件通知脚本

javascript - 如何在 AngularJS 中使用 CKEditor 上传图像?

php - 尝试从全局变量中的静态方法访问值时出现语法错误

php - Onelogin 和 ID token : grant request is invalid

python - 修复 Flask apache 应用程序中的绝对 url

python - 使用 Django 通过 gmail 发送电子邮件时出现 ConnectionRefusedError

电邮给 Whatsapp 用户

php - 如何使用下拉列表对查询结果进行排序