7

Python のemailモジュールは、ヘッダーの解析に最適です。ただし、To:ヘッダーには複数の受信者を含めることができ、複数のTo:ヘッダーが存在する場合があります。では、各メール アドレスを分割するにはどうすればよいでしょうか。コンマは引用できるので、コンマで区切ることはできません。これを行う方法はありますか?

デモコード:

msg="""To: user1@company1.com, "User Two" <user2@company2.com", "Three, User <user3@company3.com>                               
From: anotheruser@user.com                                                                                                      
Subject: This is a subject                                                                                                      

This is the message.                                                                                                            
"""

import email

msg822 = email.message_from_string(msg)
for to in msg822.get_all("To"):
    print("To:",to)

現在の出力:

$ python x.py
To: user1@company1.com, "User Two" <user2@company2.com", "Three, User <user3@company3.com>
$ 
4

1 に答える 1

8

Toすべての行をに渡しますemail.utils.getaddresses()

msg="""To: user1@company1.com, John Doe <user2@example.com>, "Public, John Q." <user3@example.com>
From: anotheruser@user.com
Subject: This is a subject

This is the message.
"""

import email

msg822 = email.message_from_string(msg)
for to in email.utils.getaddresses(msg822.get_all("To", [])):
    print("To:",to)

私があなたの行を書き直したことに注意してくださいTo。あなたの例は有効な形式ではなかったと思います。

参照: https://docs.python.org/3/library/email.utils.html#email.utils.getaddresses

于 2015-11-04T00:28:16.567 に答える