質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Email

Email(電子メール)とは、ネットワークを介してメッセージを送受信するシステム。インターネット上で利用するメールを、Emailと呼ぶ場合が多いです。 インターネットの普及に伴い、現在では一般的なサービスとなっています。文字の他にも、画像、音声、プログラムなどを送受信することが可能です。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

解決済

EMLファイルの宛先の日本語がOutlookで文字化けしてしまい対処方法がわからなく困っています。

mee12
mee12

総合スコア94

Email

Email(電子メール)とは、ネットワークを介してメッセージを送受信するシステム。インターネット上で利用するメールを、Emailと呼ぶ場合が多いです。 インターネットの普及に伴い、現在では一般的なサービスとなっています。文字の他にも、画像、音声、プログラムなどを送受信することが可能です。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

2回答

0リアクション

0クリップ

450閲覧

投稿2022/07/06 02:52

編集2022/07/06 03:34

メール送信用のEMLファイルを作成しようとしていますが、

EMLファイルの宛先の日本語がOutlookで文字化けしてしまい対処方法がわからなく困っています。
Thunderbirdでは発生していません。

使用文字コードはUTF-8です。
Thunderbirdで受信したファイルを開くと日本語がエンコードされているようなのでエンコードが必要かもしれませんが、

調べたこと
宛先の日本語はBase64エンコードされているようです、これが答えになったのかもしれませんが。

txt

abc@test.com 5pel5pys6KqeMSA8YWJjQHRlc3QuY29tPg== // 先頭と末尾に "=?UTF-8?B?" "?=" それぞれが必要かも // =?UTF-8?B? 5pel5pys6KqeMSA8YWJjQHRlc3QuY29tPg== ?=

eml

Content-Type: text/plain; charset="UTF-8" To: 日本語1 <abc@test.com> Cc: 日本語2 <abc2@test.com> Bcc: 日本語3 <abc3@test.com> Subject: Mail test 日本語テスト1 X-Unsent: 1 Mail test 日本語テスト2

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

退会済みユーザー

退会済みユーザー

2022/07/06 07:59

「Quoted-Printable」っていうMIMEエンコードのやり方を調べてみてください。Base64エンコードとは違います。
mee12

2022/07/06 10:18 編集

教えていただき、ありがとうございます。 「Quoted-Printable」っていうMIMEエンコードのやり方があるのですね。 メールのデコード処理の流れ https://qiita.com/takey/items/13a3dee5d78d364dd55c の記事に知りたい情報がありそうな感じでした。 -- ?[文字コード]?[Content-Transfer-Encoding]?[メッセージ] 文字コードがUTF-8で、Base64変換されている場合 b"From: =?UTF-8?B?44CQQVdTIOOCp...?=" -- Quoted-PrintableっていうMIMEエンコードの変換ツールで変換してみましたが、 正しい結果になりません。 https://www.en-pc.jp/tech/quoted-printable.php#result Base64でエンコードするとほしい値にはなったのですが。 どのようにすれば正しいかわかりますか?
mee12

2022/07/07 00:05 編集

ここは間違いのため削除
mee12

2022/07/07 00:16 編集

Thunderbirdの下書きの最小のemlを検証しました。今度はSubjectがBase64エンコードされていました。 --- Date: Thu, 7 Jul 2022 08:58:22 +0900 MIME-Version: 1.0 Content-Language: en-US To: =?UTF-8?B?aaa?= <xxx@xxx.co.jp> From: =?UTF-8?B?aaa?= <xxx@xxx.co.jp> Subject: =?UTF-8?B?5pel5pys6Kqe44OG44K544OIMQ==?= Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 日本語テスト2 --- 以下は下書き保存時に追加されたものだと思われるので削除しました。 --- X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Message-ID: <xxx@xxx.co.jp> User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 X-Mozilla-Draft-Info: internal/draft; vcard=0; receipt=0; DSN=0; uuencode=0; attachmentreminder=0; deliveryformat=4 X-Identity-Key: id2 Fcc: mailbox://xxx@xxx.co.jp/Sent --- そのため、いまのところはThunderbirdの下書きの最小のemlを使用したいと思います。 「Quoted-Printable」のMIMEエンコードではうまくいきません。 Base64エンコードであれば、エンコード文字の前後に " =?UTF-8?B?"、"?="を追加すれはうまく動作します。 エンコード方法のおかしなところがあればご指摘下さい。
退会済みユーザー

退会済みユーザー

2022/07/07 00:14

To: Cc: BCC: は、届けばいいって言うだけならメールアドレスだけでいいです。日本語などの宛先名をちゃんとつけようとすると、メールアドレスを<>で括った上でQuoted-Printableを使ったMIMEエンコードをすることになるものだと思われます。URL、MIME、BASE64エンコードツール http://tool.mwsoft.jp/web/urlencode.html Quoted-Printable の仕組み https://ez-net.jp/article/78/LlqN6mlJ/qLMFkFotD03X/
mee12

2022/07/07 00:19

いまのところBase64エンコードであれば、エンコード文字の前後に " =?UTF-8?B?"、"?=" につけるだけで、日本語の表示名をつけることができるようです。 ご指摘の 「メールアドレスを<>で括った上でQuoted-Printableを使ったMIMEエンコードをする」 部分について検証してみたいと思います。
mee12

2022/07/07 00:46 編集

メールアドレスの日本語表示名でわかったことをご連絡します。 いまのところ ②Base64エンコード (エンコード文字の前後に "=?UTF-8?B?"、"?="を後で付加) ③MIMEエンコード(Quoted-Printable) のどちらでも表示できるようです。 -- ①Base64エンコード =5pel5pys6KqeMQ== <test1@xxx.co.jp> ②Base64エンコード (エンコード文字の前後に "=?UTF-8?B?"、"?="を後で付加) =?UTF-8?B?5pel5pys6KqeMQ==?= <test1@xxx.co.jp> ③MIMEエンコード(Quoted-Printable) =?ISO-2022-JP?B?GyRCRnxLXDhsGyhCMg==?= <test2@xxx.co.jp> ※③は "=?ISO-2022-JP?B?"、"?="をつけてくれるので②より簡単かも Thunderbird、Outlookの両方で動作を確認しました。 --
退会済みユーザー

退会済みユーザー

2022/07/07 00:51 編集

答えは RFC 2047:MIME Part Three: Message Header Extensions for Non-ASCII Text で確認しました。https://datatracker.ietf.org/doc/html/rfc2047 "=?UTF-8?B?"で始まるのは、UTF-8をBエンコードするという意味になりBase64、"=?UTF-8?Q?"で始まるのはQエンコードするという意味になりQuoted-Printableを使うということになると。エンコードした文字列を使って、encoded-word = "=?" charset "?" encoding "?" encoded-text "?=" にはめて連結すればOK。
mee12

2022/07/07 00:57 編集

ドキュメントは英語のことと、内容が難しすぎて、理解できませんでしたが、 エンコードのことはとても勉強になりました。 ありがとうございます。解決しました。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Email

Email(電子メール)とは、ネットワークを介してメッセージを送受信するシステム。インターネット上で利用するメールを、Emailと呼ぶ場合が多いです。 インターネットの普及に伴い、現在では一般的なサービスとなっています。文字の他にも、画像、音声、プログラムなどを送受信することが可能です。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。