我应该使用什么策略在Linux上安装smtp服务器?用于多线程服务

我应该使用什么策略在Linux上安装smtp服务器?用于多线程服务

你好,我需要实现通过电子邮件向用户发送提醒的服务,这应该是多线程调度系统,这部分没问题,但我需要在服务器上安装和配置 smtp 服务器以发送电子邮件,这是我不知道该怎么做以及会有什么结果我的工具会是某些 Linux(我猜是 ubuntu)切片上的 lamp combo。

答案1

安装非常特定于发行版,因为有发行版推荐的安装软件方式。如今,我很少建议任何人在任何 Linux 发行版上通过源代码安装 Postfix。

对于 ubuntu,使用 apt-get。

$ sudo apt-get install postfix

这将在您的 Ubuntu 服务器上安装 postfix,之后的配置将由您完成。我的建议是将邮件传输到 sendmail 二进制文件(通常位于 /usr/sbin/sendmail),如果 Postfix 系统关闭,它将把邮件保存在队列中。如果您使用 SMTP 并连接到端口 25,如果您的邮件服务器需要关闭进行维护,您的应用程序将需要保存自己的邮件队列,否则可能会有邮件无法送达的风险。

答案2

安装 Postfix,按照Postfix 网站

答案3

您还可以安装 exim4,虽然设置起来更加复杂(由于 debian 的黑客行为),但设置转发邮件要容易得多。只需 apt-get install exim4,然后,如果需要,dpkg-reconfigure exim4-config。

答案4

如果您曾经从源代码构建/编译过代码,那么从源代码出发构建 Postfix 并不难。

我们使用 mailx 发送电子邮件,并且 mailx 与 postfix SMTP 服务器对话作为实际的中继点。

此外,一旦您启动并运行 Postfix 服务器,其他外部服务器就可以参考它来中继电子邮件。

我们使用脚本构建过程在我们的 Linux 发行版(Pozix Linux)上构建 Postfix。

这是我们用来构建 Postfix 文件的命令:

制作 makefile'CCARGS=-DHAS_PGSQL -DUSE_TLS -I/usr/local/pgsql-8.2.13/include -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -I/usr/include/sasl -I/usr/local/BerkeleyDB/include''AUXLIBS=-L/usr/local/lib -L/usr/local/pgsql-8.2.13/lib -L/usr/local/BerkeleyDB/lib -lpq -lsasl2 -lz -lm -lssl -lcrypto -lpthread'

您可以根据需要进行调整。由于我们使用 PostgreSQL,因此我们有:-L/usr/local/pgsql-8.2.13/lib -lpq

如果您不需要 PostgreSQL 支持,则可以消除这些;SASL 和 TLS 也是如此。

执行此命令后,

make install (全新安装) make upgrade (升级以前的版本)

为了使 mailx 正常工作,我们通常有一个以 root 身份调用脚本的 CRON 作业。

该脚本反过来调用 mailx。

MAILX 使用 .rc 文件来读取环境变量,并且由于我们以 root 用户身份调用 mailx,因此我们需要在 root 的主目录中放置一个名为“.mailrc”的文件。

.mailrc 的内容如下:

[电子邮件保护] 设置 smtp=mail.mydomain.com 设置[电子邮件保护] 设置 smtp-auth 密码 = 警报密码 设置 smtp-auth = 登录

然后在我们的脚本中我们像这样调用 mailx:

echo“测试消息”| mailx“[电子邮件保护] [电子邮件保护]“-s“电子邮件主题”“电子邮件正文”

或者你可以这样做:

mailx -s“主题”-a /路径/到/某些/文件[电子邮件保护]

其中 -a 允许您附加文件,而 test.msg 是读入电子邮件正文的外部文件。

或者另一种方法,类似于首先使用文件附件,方法是:

echo“消息正文”| mailx -s“主题”-a /path/to/some/file[电子邮件保护]

相关内容