我希望能够从 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 参数来完成。