你好,我需要实现的服务,通过电子邮件发送用户提醒,这应该是multithreading的计划系统这部分是好的,但我需要安装和configuration服务器上的电子邮件出去smtp服务器,这是我不知道如何做什么和期望我的工具将在一些Linux的组合灯(我猜ubuntu)切片。
安装是非常分布特定的,因为有分发推荐安装软件的方法。 我推荐任何人在任何Linux发行版上通过源码安装Postfix是非常罕见的。
用Ubuntu,使用apt-get。
$ sudo apt-get install postfix
这将在你的Ubuntu服务器上安装postfix,之后的configuration留给你。 我的build议是将邮件发送到sendmail二进制文件(通常位于/ usr / sbin / sendmail),如果Postfix系统处于closures状态,邮件将保留在队列中。 如果您使用SMTP并连接到端口25,如果您的邮件服务器需要进行一些维护,您的应用程序将需要保留它自己的邮件队列或风险邮件不被传递。
按照Postfix.org的说明安装Postfix
你也可以安装exim4,虽然对于困难的设置(由于debian的hackery)更复杂,但更容易设置转发邮件。 只需apt-get install exim4,然后,如有必要,dpkg-reconfigure exim4-config。
就我个人而言,我会认真考虑你的目标。 如果它只是代表一个networking服务器喷出奇怪的邮件 – 用Sendmail / Postfix去吧。 如果将要处理入站邮件和用户,以及所带来的一切复杂性,我会考虑exim4。 后者为您带来了一大堆的灵活性,默认情况下的数据库选项和病毒/垃圾邮件扫描,然后再完成SMTP交易。 哦,是的 – 它是一个痛苦的设置 – 但一旦分类 – 甜。
如果你曾经从源代码构build/编译过代码,Postfix并不难从源代码中站起来。
我们使用mailx向外发送电子邮件,并将mailx会话发送到实际中继点的postfix SMTP服务器。
而且,一旦你开始运行Postfix服务器,其他外部服务器可以引用它来进行电子邮件中继。
我们使用脚本化的构build过程在我们的Linux发行版(Pozix Linux)上构buildPostfix。
这里是我们用来构buildPostfix make文件的命令:
make makefiles 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(用于新安装)进行升级(升级以前的版本)
为了使mailx正常工作,我们通常会有一个以root身份调用脚本的CRON作业。
该脚本反过来调用mailx。
MAILX使用.rc文件来读取环境variables,因为我们以root用户的身份调用mailx,所以我们需要在root的主目录下放一个名为“.mailrc”的文件。
.mailrc的内容如下所示:
设置from [email protected]设置smtp = mail.mydomain.com设置[email protected]设置smtp-auth-password = alertspassword设置smtp-auth =login
然后在我们的脚本中,我们像这样调用mailx:
回声“testing消息”| mailx“[email protected] [email protected]”-s“电子邮件主题”“电子邮件正文”
或者你可以这样做:
mailx -s“subject”-a / path / to / some / file [email protected]
其中-a允许你附加一个文件,test.msg是一个外部文件,可以读入电子邮件正文。
或者其他方式,类似于第一个文件附件,是:
回声“消息正文”| mailx -s“subject”-a / path / to / some / file [email protected]