mk-toolブログ

エンジニアと家のことをごちゃごちゃと書いてます

mailparserで `iso-2022-jp` を扱う

メールが文字化けをしてしまう

何も考えずに mailparser を利用すると、 iso-2022-jp文字コードの日本語文字が文字化けしてしまう。

これを対処するには、 iconv を利用することで解決することができる。

まず、 iconv をinstallする。

npm i iconv

MailParser を利用している場合は以下の記述に直す。

const Iconv = require('iconv').Iconv;
const MailParser = require('mailparser').MailParser;
let parser = new MailParser({ Iconv });

simpleParser を利用している場合は以下の記述に直す。

const Iconv = require('iconv').Iconv;
const simpleParser = require('mailparser').simpleParser;
simpleParser('rfc822 message', { Iconv }, callback);

なお、 iso-2022-jp を含めてメールの文字化けは、以下のサイトに通すことで、デコードしてくれる。 文字化けが起きていたころはデコードするのに、大変重宝した。

https://www.bungu-do.jp/tools/mail_subject

参考

https://github.com/nodemailer/mailparser/issues/199