如何以正确的方式格式化UTF8到Subject Header?

时间:2016-05-06 09:34:34

标签: android linux bash email

我正在测试给自己发送一些电子邮件,其中包括ä,ü,ö等德语变音符号。 这是我使用的命令:

echo "ä ü ö" | mail -a "Content-Type: text/plain; charset=UTF-8" -s "test ä ü ö" test@example.com

但我在标准的Android电子邮件客户端上看到了这个:

test@example.com
test ?? ?? ??
ä ü ö

如果我通过Thunderbird或类似方式写自己的电子邮件,它的工作正常。 有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

MIME(Content-Type:)标头指定电子邮件BODY的编码 [BTW你的MIME(内容类型)标题不完整]

电子邮件标头(Subject:From:,...)还有另一种编码(RFC-2047)。

请在下面找到回答" perl oneliner"做这样的转换。
https://superuser.com/a/972248/209289

如果您使用基于utf-8的语言环境,则以下脚本应该有效 [它似乎适用于LANG=en_US.UTF-8]

#!/bin/sh
SUBJECT="test ä ü ö"
SUBJECT=`perl -MEncode -CA -e 'print Encode::encode("MIME-Q",$ARGV[0])' "$SUBJECT"`

/usr/sbin/sendmail -i -- test@example.com <<END
Subject: $SUBJECT
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

ä ü ö
END