使用单独的postfix服务器从bash脚本发送电子邮件

我想能够从一个bash脚本发送电子邮件。 我目前有一个运行postfix的服务器,我使用从我的PHP服务器发送电子邮件。 我现在希望能够从第三个服务器运行bash脚本,并使用邮件服务器发送电子邮件,因为我不想拥有可以发送电子邮件的多个服务器。

看着这个问题 ,看来我需要安装Python(这是一个没有太多安装的裸机linux服务器),或者在继电器模式下使用postfix,但我不确定这是什么意思。 我是否必须在此服务器上安装postfix,并将其作为传递到我的邮件服务器? 有没有其他的select从bash发送电子邮件到外部服务器?

ssmtp工具做你想要的: http : //www.linux.com/archive/feature/132006

它可以从Debian / Ubuntu上的APT安装。

那么,如果你想发送的电子邮件是相当基本的,你也可以使用基本的SMTP命令和netcat与电子邮件服务器通话。

下面的bash脚本工作得很好,虽然…

#! /bin/bash my_message="hello world, how's the weather today ?" mail_srv_ip=127.0.0.1 mail_srv_port=25 [email protected] nc $mail_srv_ip $mail_srv_port << EOF ehlo mail.script mail from:<bashscript@local> rcpt to:<$recipient> data subject: bash script email output $message . quit EOF 

如果目标是发送一个bash脚本的输出,它将工作。 $ message可以包含你想要的任何东西,smtp期望'data'部分的末尾用一个以点开始的行来标记。

我build议安装postfix并使用本指南: http : //www.postfix.org/STANDARD_CONFIGURATION_README.html#null_client来设置中继。

这种方式邮件将在本地处理,并将由relayhost参数(又称smarthost)中指定的服务器实际提供。 你应该把它的IP地址放在那里。

智能主机必须configuration为接受来自本机的邮件。 这可以通过将客户端IP地址添加到智能主机上的mynetworks参数来完成。