📅  最后修改于: 2023-12-03 14:49:37.462000             🧑  作者: Mango
在 Web 2.0 时代,很多程序员都使用在线电子邮件客户端,比如 Gmail、Outlook 等。但是如果你想要脚本化一些任务,比如自动化测试、批量发送通知等,使用命令行或 Bash 脚本发送邮件就会方便很多。
使用 Bash 脚本发送邮件的原理很简单,就是通过命令行工具发送邮件。在 Linux 系统上,我们可以使用 mail 或者 mutt 等命令行工具发送邮件。
mail 命令是 Linux 系统自带的命令行工具。它的基本用法是:
echo "邮件内容" | mail -s "邮件主题" 收件人邮箱地址
例如,发送一封邮件给 example@gmail.com:
echo "这是一封测试邮件" | mail -s "测试邮件" example@gmail.com
如果要发送带附件的邮件,可以使用 -a
参数添加附件:
echo "请查收附件" | mail -s "带附件的邮件" -a /path/to/attachment.pdf example@gmail.com
mutt 是一个类似于 Vim 的命令行邮件客户端,它可以让你在终端上发送和接收电子邮件。安装 mutt 命令:
sudo apt-get install mutt
使用 mutt 命令发送邮件:
echo "邮件内容" | mutt -s "邮件主题" 收件人邮箱地址
带附件的邮件:
echo "请查收附件" | mutt -s "带附件的邮件" -a /path/to/attachment.pdf example@gmail.com
为了方便在脚本中调用邮件发送函数,我们可以使用 shell 函数封装 mail 或 mutt 命令。例如:
#!/bin/bash
function send_mail {
local subject="$1"
local recipient="$2"
local message="$3"
local attachment="$4"
if [[ -n "$attachment" ]]; then
mutt -s "$subject" -a "$attachment" -- "$recipient" <<< "$message"
else
mutt -s "$subject" -- "$recipient" <<< "$message"
fi
}
send_mail "测试邮件" example@gmail.com "这是一封测试邮件" "/path/to/attachment.pdf"
以上是使用 Bash 脚本发送邮件的介绍。祝你愉快地编写自动化邮件发送脚本!