Linux:为什么在使用 uuencode 时从文件名中删除冒号 (:)?

标签 linux email uuencode

我正在尝试通过电子邮件发送名称中包含冒号 (:) 字符的文件:

my_attachment_name=some_file_with_:_in_the_name.txt
uuencode "${my_attachment_name}" "`basename \"${my_attachment_name}\"`"
     | mail -s "My Report ..." my_email@xyz.com

但是,当我收到电子邮件时,我看到“:”已从文件名中删除。

some_file_with__in_the_name.txt

我该如何解决?

谢谢。

最佳答案

您可以尝试将 uuencode 与“--encode-file-name”一起使用。但是,在这里,我看到:

$ uuencode foo:bar.txt foo:bar.txt
begin 664 foo:bar.txt
#:&D*
`
end

这正是我想要的“开始”行。

对比:

$ uuencode --encode-file-name foo:bar.txt foo:bar.txt
begin-encoded 664 Zm9vOmJhci50eHQ=
#:&D*
`
end

uudecode 不需要任何选项就可以在我的计算机上从 Zm9vOmJhci50eHQ= 重建 foo:bar.txt。

还要检查您电子邮件的原始内容,电子邮件客户端可能是愚蠢的。例如,DOS 偏见可能会使电子邮件客户端放弃冒号。

关于Linux:为什么在使用 uuencode 时从文件名中删除冒号 (:)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31934288/

相关文章:

linux - Unix - 递归计算文件类型的数量

php - 使用 PHP SDK 从 Amazon SES 发送 HTML 邮件

javascript - javascript中的uudecode算法

android - 使用 Html.fromHtml(message) 时未定义的构造函数 BasicNameValuePair(String, Spanned)

Java 邮件消息传递异常

shell - 将 sendmail 用于 HTML 正文和二进制附件

java - java中的uuencode zipfile

linux - 如何编写 shell 脚本来搜索目录列表中的文本

linux - 在 Manjaro 中阻止某些软件更新

linux - 使用 sed 运行 Linux find 命令时出错