如何在 mutt 命令行中指定附件编码?

Mar*_*ngs 5 command-line character-encoding email centos mutt

我正在尝试从 Perl 脚本发送一封带有附件的电子邮件。

首先,我创建附件(一个 xml 文件):

open(XMLFILE, ">:utf8", $xmlfile);
print XMLFILE "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
print XMLFILE "<data>\n";
#print XMLFILE "...\n";
print XMLFILE "</data>\n";
close (XMLFILE);
Run Code Online (Sandbox Code Playgroud)

我也尝试open(XMLFILE, ">", $xmlfile);binmode XMLFILE, ":utf8";

然后我像这样发送电子邮件:

open(MUTT, "|/usr/bin/mutt -s \"TestSubject\" -a $xmlfile \"test\@example.com\"");
binmode MUTT, ":utf8";
print MUTT ("TestBody");
close (MUTT);
Run Code Online (Sandbox Code Playgroud)

尽管如此,正文部分和附件都有Content-Type: text/plain; charset=iso-8859-1

我也尝试过open(MUTT, "|/usr/bin/mutt -e \"set file_charset=utf-8\" -a $xmlfile ...,但这给了我一个Error in command line: file_charset: unknown variable.

我究竟做错了什么?

Mar*_*ngs 0

我无法更新 mutt 版本,但我找到了一个解决方法 - 其他人可能会发现这也很有帮助。

\n\n

包含带有特殊字符的注释可以让 perl 和 mutt 选择正确的 (utf-8) 编码(可能 '\xc5\x82' 就足够了,但使用元音变音字符的意图会更清晰):

\n\n

在 xml 中,它是这样的:

\n\n
<?xml ... ?>\n<?comment <!-- \xc5\x82\xe2\x82\xac\xc3\xa8\xc3\x84\xc3\xb6\xc3\x9c\xc3\x9f --> ?>\n<content>\n    ...\n</content>\n
Run Code Online (Sandbox Code Playgroud)\n