禁用 Ubuntu 中的所有邮件功能

禁用 Ubuntu 中的所有邮件功能

我在 Ubuntu 服务器(LAMP)上有一个标准的登台环境,上面有几个网页。

有些网页会在特定工作流事件发生时发送电子邮件。

我必须在系统上运行一些测试,但不能允许随机电子邮件飞过来并向版主发送垃圾邮件(这种情况发生过一次)。

禁用代码的特定部分或调整网页设置并不是好的情况,因为系统需要处于类似生产的设置,而且可能在几个地方(或如果其中一个选项被禁用则为后备方案)并且我不能冒这个险。

我能想到的最合理的解决方案就是简单地禁用(暂时)所有邮件服务(通常用于 PHP)。

我拥有服务器的完全访问权限和基本的 Linux 技能。

发现这个女巫看起来很适合开始:

sudo /etc/init.d/sendmail stop

但我需要知道是否存在其他可能的邮件服务,
如何检查它们是否正在运行,
如何停止它们,
如何验证。

我想上述命令可能就足够了......但我想听听在这个领域更有经验的人的意见。

答案1

如果您像这样停止整个邮件服务器(/etc/init.d/sendmail stop),您可能会遇到一些困难,无法正确测试您的代码。例如,在执行发送邮件的操作时,可能会等待太长时间并产生超时,因为邮件服务器未启动,导致您认为您的代码无法正常运行。

我个人对这个问题的做法不是停止邮件服务器,而是在代码级别和系统级别采取行动:

  1. 首先,如果你需要发送邮件,你不需要拥有一个完整的邮件服务器,比如发送邮件或者后缀或者邮件系统已安装。您只需安装邮件传输协议包足以使用配置的邮件中继发送邮件/etc/ssmtp/ssmtp.conf
  2. 如果您的应用程序使用本地二进制文件(如mail或)发送邮件sendmail,则停止邮件服务器可能不是解决方案:邮件可以在本地排队,如果您重新启动邮件服务器,则所有累积的邮件将立即发送。
  3. 我理想的解决方案是直接从您的应用程序使用 SMTP 协议发送邮件,通过连接到 IP 地址和端口(默认为 25),可能使用用户名和密码进行身份验证。
  4. 如果您的应用程序能够将邮件发送到中继(本地或外部),请确保它不是硬编码在您的代码中,而是通过专用于您的应用程序的配置文件定义。目标电子邮件地址也应如此。
  5. 如果您尊重上一点,那么您可以构建一个具有不同电子邮件配置的临时服务器。临时服务器的配置可以是将邮件发送到您的个人电子邮件地址。
  6. 这种方法的优点是允许您测试电子邮件功能,而不会干扰生产邮件的实际目的地。此外,您还可以确保不会产生禁用邮件服务器的副作用。

相关内容