1

我正在使用 Ubuntu 18.04 LTS、GNU Mailutils 3.4 和 MSMTP 1.6.6 从 Bash 脚本(和/或从命令行测试)发送包含附件的电子邮件。我在服务器运行 16.04 时使用 BSD-Mailx,但升级到 18.04 导致 Mailx 无法发送附件。

mail为了将文本传递到电子邮件正文,我尝试了多种格式的命令,但它们似乎都失败了。一些例子:

echo "This is the body of the e-mail" | mail address@example.com -s "This is the subject" -A /file/path/file.txt

我得到的只是带有空电子邮件的附件。

mail address@example.com -s "This is the subject" -A /file/path/file.txt <<< echo "This is the body of the e-mail"

同样,清空带有附件的电子邮件。

我还尝试使用命令末尾的电子邮件地址,它仍然只是提供带有附件的空电子邮件。

我已经尝试了上面的其他几个迭代,例如单个<重定向,|命令末尾的文本,当然失败了,但只是试图猜测正确的格式。

有没有其他人知道这一点?

4

2 回答 2

1

使用 mailutils

我认为问题在于,如果您指定-A,stdin 将被忽略:https ://savannah.gnu.org/bugs/?54992

您可以将正文文本作为附加附件包含在内:

echo "This is the body of the e-mail" |\
mail address@example.com \
    -s "This is the subject" \
    --skip-empty-attachments \
    --content-type text/plain -A - \
    -A /file/path/file.txt

使用笨蛋

虽然我不认为 mutt 真的是为编写脚本而设计的,但它看起来应该可以工作:

echo "this is the body" |\
mutt \
  -s "this is the subject" \
  -a /file/path/file.txt -- \
  address@example.com
于 2019-03-16T23:17:18.523 回答
0

感谢@jhnc,我将我指向https://savannah.gnu.org/bugs/?54992我在那里发布了我的问题并收到回复说这是一个错误,根据此讨论https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806#现在已在 Mailutils 3.5-3 中修复22 .

--mime同时,通过添加属性有一种解决方法,如下所示:

echo "body text" | /usr/bin/mail --mime -s "some subject" -A "somefile.csv" my@email.com

显然,我需要在我的“Google foo”和 Stackoverflow 参与方面做一些工作。我希望这是回答我最初的问题的“正确”方式。

于 2019-03-18T19:16:21.883 回答