开发者

Blank line in email's headers

开发者 https://www.devze.com 2023-04-04 03:35 出处:网络
I want to make pop3 client in PHP. I have a problem when I get all message (body + headers) I want to divide headers and body. Normally after headers there is a blank line and then there is a body of

I want to make pop3 client in PHP. I have a problem when I get all message (body + headers) I want to divide headers and body. Normally after headers there is a blank line and then there is a body of message. I realized that in one e-mail in my mailbox there are headers with a blank line:

    Delivered-To: asd@gmail.com
Received: by 10.239.164.198 with SMTP id u6cs311361hbd;
        Thu, 25 Feb 2010 08:11:16 -0800 (PST)
Received: by 10.223.6.27 with SMTP id 27mr1385919fax.31.1267114275670;
        Thu, 25 Feb 2010 08:11:15 -0800 (PST)
Return-Path: <elsa@homelidays.emv2.net>
Received: from emailer112-138.emv2.net (emailer112-138.emv2.net [81.92.112.138])
        by mx.google.com with ESMTP id 24si15703136fxm.76.2010.02.25.08.11.12;
        Thu, 25 Feb 2010 08:11:14 -0800 (PST)
Received-SPF: pass (google.com: domain of elsa@homelidays.emv2.net designates 81.92.112.138 as permitted sender) client-ip=81.92.112.138;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of elsa@homelidays.emv2.net designates 81.92.112.138 as permitted sender) smtp.mail=elsa@homelidays.emv2.net; dkim=pass (test mode) header.i=elsa@emv2.net
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=emv; d=emv2.net;
 h=Date:From:Reply-To:To:Message-ID:Subject:MIME-Version:Content-Type:List-Unsubscribe; i=elsa@homelidays.emv2.net;
 bh=6AAaS7MBmDZ4twficXpZISS03+k=;
 b=ShFzHF3jozT6joZ/O5JvKS6ECNwXfT+4XdWv+tgLCzsGFMiesKF4PxtCcrw/SnR9YyBa9I8BOUWj
   MjyJqGFPaA==
DomainKey-Signature: a=rsa-sha1; c=nofws; q=dns; s=emv; d=emv2.net;
 b=TyNSOdwDU8IJW1e4Iq6/TLj4QjyO/Leru+VFXAQSmJ+nVwdpHSIk7N5myHNNajhOu5yG7uQjAdoT
   I6QsJNDEjw==;
Received: by emailer112-138.emv2.net id hgqgi40hu6oc for <asd@gmail.com>; Thu, 25 Feb 2010 17:10:21 +0100 (envelope-from <elsa@homelidays.emv2.net>)
Return-Path: elsa@homelidays.emv2.net
Date: Thu, 25 Feb 2010 17:10:21 +0100 (CET)
From: "Homelidays.co.uk" <elsa@homelidays.emv2.net>
Reply-To:  <renter-service@homelidays.com>
To:  <asd@gmail.com>
Message-ID: <34216955106.7026379.1267114221347@schr1>
Subject: Spring sunshine & Easter escapes
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=702637934216955106
X-EMV-Platform: ccc.campaigncommander.com$
X-EMV-CampagneId: 7026379$
X-EMV-MemberId: 34216955106$
List-Unsubscribe: http://trc1.emv2.com/HD?a=DNX7Cq7R8H0N8SA9MKIk7THnGHxKDTNjXw76

--702637934216955106
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8bit

               If you cannot see this message, please click here http://trc1.emv2.com/HM?a=DNX7Cq7R8H0N8SA9MKIk7THnGHxKDTNIDA6e



--702637934216955106
Content-Type: text/html; charset=iso-8859-15
Content-Transfer-Encoding: 8bit

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body b开发者_高级运维gcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
        <table cellspacing="0" cellpadding="0" width="650" align="center">
            <tr>
... and the rest of body...

How can I have body and headers separated messages with blank line inside?


For parsing a mail message, first you have to find where the headers end. This will be on the first blank line in the message.

Once you have found that, you may have to parse the message itself. The reason for this is that you have presented a multi-part message, which is made of... multiple parts. Each part can have its own content type and what not. This is common for HTML e-mails, as well as e-mails with attachments.

To find out how to parse the multi-part message, you need to look for the boundary identifier. This is outlined at the end of this header:

Content-Type: multipart/alternative; boundary=702637934216955106

Just split the message on the boundary, and deal with each part separately from there.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号