问题描述
如果我从终端直接使用 mutt 命令,我可以看到主题是 ?UTF-8B?base64_encoded(subject)?=
,而我的附件内容处置标头将是 attachment; filename*=UTF-8''UTF-8_encoded_filename
。这一切正常。
但是当我从 java 进程构建器发送这封邮件时,没有设置任何标题值或任何编码,只是简单地提供主题,to_mail 值存在编码问题,主题会像 ?unkown-8bit?B?wrong_base64_encoded(subject)
编码的主题是错误的,所以在解码时,某些字符和内容处置标头 attachment; filename*=us-ascii''UTF-8_encoded_filename
的附件值会有问号。因此,虽然文件名将充满非人类可读的字符。
那么,如何为主题设置正确的编码,以及如何在 content-disposition 标头中提及正确的编码。
解决方法
使用 -e set charset=utf8
运行 mutt 命令后问题得到解决。