我正在测试给自己发送一些电子邮件,其中包括ä,ü,ö等德语变音符号。 这是我使用的命令:
echo "ä ü ö" | mail -a "Content-Type: text/plain; charset=UTF-8" -s "test ä ü ö" test@example.com
但我在标准的Android电子邮件客户端上看到了这个:
test@example.com
test ?? ?? ??
ä ü ö
如果我通过Thunderbird或类似方式写自己的电子邮件,它的工作正常。 有谁知道如何解决这个问题?
答案 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