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

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

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

看着这个问题看来我需要安装 Python(这是一个基本的 Linux 服务器,没有安装太多东西)或者在仅中继模式下使用 Postfix但我不确定这意味着什么。我是否必须在此服务器上安装 postfix 并将其用作我的邮件服务器的通道?还有其他选项可以从 bash 将电子邮件发送到外部服务器吗?

答案1

好吧,如果您想要发送的电子邮件相当基础,您也可以使用基本的 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 希望“数据”部分的末尾以以点开头的行标记。

答案2

邮件传输协议工具可以完成您想要的操作:http://www.linux.com/archive/feature/132006

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

答案3

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

relayhost这样邮件将在本地处理,并由参数中指定的服务器(又名 smarthost)实际传送。您应该将其 IP 地址放在那里。

必须配置智能主机以接受来自此计算机的邮件。这可以通过将客户端 IP 地址放入智能主机上的 mynetworks 参数来完成。

相关内容