Skip to main content
 首页 » 编程设计

python之使用 python 从字符串中获取电子邮件 ID 的最佳方法

2025年05月04日22zhenyulu

我们可以使用 python 从下面的字符串中获取“X-Mailer-recipient:”电子邮件 ID。

使用重新?

    Received: from localhost6.localdomain6 (unknown [59.92.85.188]) 
        by smtp.webfaction.com (Postfix) with ESMTP id 05B332078BD1 
        for <rshivaganesh@gmail.com>; Fri, 26 Aug 2011 04:59:36 -0500 (CDT) 
    Content-Type: text/html; charset="utf-8" 
    MIME-Version: 1.0 
    Content-Transfer-Encoding: 7bit 
    Subject: Test subject100 
    From: shivaganesh@gmail.com 
    To: rshivaganesh@gmail.com 
    Date: Fri, 26 Aug 2011 10:01:39 -0000 
    Message-ID: <20110826100139.4763.43322@localhost6.localdomain6> 
    X-Mailer-status: false 
    X-Mailer-recipient: rshivaganesh@gmail.com 

谢谢

请您参考如下方法:

使用 email包裹:

from email import message_from_string 
 
msg = '''Received: from localhost6.localdomain6 (unknown [59.92.85.188]) 
    by smtp.webfaction.com (Postfix) with ESMTP id 05B332078BD1 
    for <rshivaganesh@gmail.com>; Fri, 26 Aug 2011 04:59:36 -0500 (CDT) 
Content-Type: text/html; charset="utf-8" 
MIME-Version: 1.0 
Content-Transfer-Encoding: 7bit 
Subject: Test subject100 
From: shivaganesh@gmail.com 
To: rshivaganesh@gmail.com 
Date: Fri, 26 Aug 2011 10:01:39 -0000 
Message-ID: <20110826100139.4763.43322@localhost6.localdomain6> 
X-Mailer-status: false 
X-Mailer-recipient: rshivaganesh@gmail.com 
''' 
mail = message_from_string(msg) 
print mail['x-mailer-recipient'] 

使用正则表达式不是一个好主意,因为 a) 标题名称不区分大小写,b) 可以有多个具有相同名称的标题,c) 一个标题可以包含另一个标题,例如有人可能拥有邮件地址“X-Mailer-recipient:@hotmail.com”,这会混淆基于正则表达式的方法。