

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

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

[code]

    hoge01.hoge.com
    hoge02.hoge.com
    
[/code]

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

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

[code]

    ほげさん <hoge01@gmail.com>
    ほげさま <hoge02@gmail.com>
    
[/code]

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

[![画像の説明をここに入力](https://i.stack.imgur.com/Liaej.gif)](https://i.stack.imgur.com/Liaej.gif)

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

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

[code]

    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("** 作成完了 **")
    
[/code]


CC BY-SA 4.0
2019-06-12T13:23:30.337
55729
2019-06-12T17:07:16.613
2019-06-12T17:07:16.613
3060
34685
question
python python3
送信メールファイル（.eml）作成時における宛先アドレス文字化けについて