📅  最后修改于: 2023-12-03 15:08:49.631000             🧑  作者: Mango
当需要通过 shell 编程在 Unix 上发送电子邮件时,有时会遇到需要添加附件和正文的情况。本文将介绍如何通过 shell 脚本发送带有附件和正文的电子邮件。
在这个例子中,我们需要使用以下命令:
以下是要发送电子邮件的 shell 脚本,脚本同时带有一个附件和正文。
#!/bin/bash
to="recipient@example.com"
subject="Testing Email with an attachment"
body="Hello,\n\nI'm sending this email with an attachment.\n\nThanks,\nYour Name"
attachment="/path/to/attachment.txt"
echo -e "$body" | mutt -s "$subject" -a "$attachment" -- "$to"
我们使用 bash 脚本的变量来存储目标收件人、主题、正文和附件的位置。然后,我们使用 echo
命令将正文写入标准输出,并通过管道将其传递给 mutt 命令。然后我们使用 -s
选项指定邮件的主题,-a
选项指定要附加的文件。最后,我们指定收件人电子邮件地址和 mutt 命令即可发送电子邮件。
如果要添加多个附件到电子邮件中,则像这样使用添加多个 -a
选项:
#!/bin/bash
to="recipient@example.com"
subject="Testing Email with Multiple Attachments"
body="Hello,\n\nI'm sending this email with multiple attachments.\n\nThanks,\nYour Name"
attachment1="/path/to/attachment1.txt"
attachment2="/path/to/attachment2.txt"
attachment3="/path/to/attachment3.txt"
{ echo -e "$body"; uuencode "$attachment1" $(basename "$attachment1"); uuencode "$attachment2" $(basename "$attachment2"); uuencode "$attachment3" $(basename "$attachment3"); } | mail -s "$subject" "$to"
我们使用 uuencode
命令将二进制文件编码为 ASCII,并使用 basename
命令获取附件的文件名。最后,我们将所有内容发送到 mail
命令并添加一个主题和收件人电子邮件地址。
在 Unix 系统上,我们可以使用 mail
命令和 mutt
命令将带有附件和正文的电子邮件通过 shell 脚本发送。我们也可以使用 uuencode
命令将二进制文件编码为 ASCII 格式,以便在电子邮件中进行传输。