spool
命令本身并不直接支持邮件的批量发送。spool
通常用于在 Unix 和类 Unix 系统中管理输出缓冲,例如将命令的输出保存到文件中,以便稍后处理或批量发送。
然而,你可以结合其他命令和工具来实现邮件的批量发送。以下是一个使用 mail
或 sendmail
命令发送邮件批量的示例:
- 使用
mail
命令(适用于 Sendmail 或 Postfix):
假设你有一个包含多个收件人地址的文本文件 recipients.txt
,每行一个地址。你可以使用以下命令将邮件内容批量发送给这些收件人:
while read recipient; do
echo "This is the email body" | mail -s "Subject of the email" "$recipient"
done < recipients.txt
这个脚本逐行读取 recipients.txt
文件中的每个收件人地址,并使用 mail
命令发送邮件。
2. 使用 sendmail
命令:
如果你更喜欢使用 sendmail
,你可以编写一个简单的脚本或使用命令行参数来发送邮件。以下是一个示例脚本:
#!/bin/bash
RECIPIENTS="recipient1@example.com recipient2@example.com recipient3@example.com"
SUBJECT="Subject of the email"
BODY="This is the email body"
for recipient in $RECIPIENTS; do
echo -e "$BODY\n" | sendmail -t -v -r from@example.com "$recipient"
done
在这个示例中,我们首先定义了一个包含多个收件人地址的变量 RECIPIENTS
,然后使用 for
循环遍历这些地址,并使用 sendmail
命令发送邮件。注意,-t
参数告诉 sendmail
从邮件头中提取收件人地址,-v
参数启用详细输出,-r
参数指定发件人地址。
请注意,这些示例假设你已经配置好了邮件传输代理(如 Sendmail、Postfix 或 Exim),并且可以在命令行中使用 mail
或 sendmail
命令。如果你还没有配置好邮件传输代理,你可能需要先进行相应的配置。