初めまして。プログラミングを始めて間もなく、独学でいろいろ試しておりますがお知恵を拝借したくお願いいたします。

■やりたいこと
Python3にて後述のcodeでテキストファイルから送付先アドレスやメール本文を読み込んで、メール送信ファイルを作成する。
宛先アドレスは"メールアドレス.txt"とし、たとえば

hoge01.hoge.com
hoge02.hoge.com

のように複数行で記述しておく。
読み込んだアドレスは変数「address」に代入し、あとで「to_addr」としてメールに反映される。

■発生している問題
"メールアドレス.txt"の記述が、上記のように英数字だけであれば問題ないが、

ほげさん <hoge01@gmail.com>
ほげさま <hoge02@gmail.com>

のように日本語が混じると、このように文字化けが発生し正確に反映されません。

画像の説明をここに入力

メーラーはOutlookを想定しています。
エンコードの問題かと思いますが、恥ずかしながら解決できずお伺いする次第です。

よろしくお願いいたします。

import email
from email.mime.text import MIMEText
from email.utils import formataddr
from email.header import Header
from email import generator

#-------------------------------
# 宛先アドレスの読み込み
a = open("メールアドレス.txt","r", encoding="utf-8")
a2 = a.read().split('\n')
print(a2)
address = '; '.join(a2)
a.close()
#-------------------------------

# お名前(メール本文)の読み込み
n = open("お名前.txt", "r", encoding="utf-8")
name = n.read()
n.close()
#-------------------------------

#メール本文の読み込み
h = open("本文.txt", "r", encoding="utf-8")
honbun = h.read()
h.close()

#-------------------------------

from_addr = 'hogesan@hoge.com'
to_addr = address
subject = "御礼"
body = name + "\n" + " \n" +" \n" + honbun

encoding = 'utf-8'
sender_name = Header('hogesaki hogeo', encoding).encode()

message = MIMEText(body.encode(encoding), 'plain', _charset=encoding)
message['Subject'] = Header(subject, encoding)
message['From'] = formataddr((sender_name, from_addr))
message['To'] = to_addr
message.add_header('X-Unsent', '1')

with open('test01.eml', 'w') as eml:
    gen = generator.Generator(eml)
    gen.flatten(message)

print("** 作成完了 **")