我想创建一个sh
文件来通过 发送电子邮件telnet
。像这样的东西:
read -p "from: " from
read -p "from (friendly name): " fromf
read -p "dest: " dest
read -p "dest (friendly name): " destf
read -p "subjct: " subjct
read -p "text: " text
telnet server port (the user put this values on sh file directly)
helo
mail from: $from
rcpt to: $dest
data
from: $fromf <$from>
to: $destf <$dest>
subject: $subjct
$text
.
我该怎么做?
答案1
我将忽略您这样做的原因,并假设您已经知道这些注意事项 - 如果不知道,请知道许多 ISP 可能会阻止端口 25,并且某些 SMTP 服务器将阻止来自动态 IP 地址的请求。
bash 的一个鲜为人知的功能是您可以将输出直接发送到服务器,/dev/tcp/hostname/port
并且它会连接到服务器。因此,如果您使用 bash,您可以执行以下操作:
cat > /dev/tcp/server/port <<EOF
HELO
MAIL FROM: $from
[...]
EOF