--047d7b33d6decd251504bfe78895
Content-Type: multipart/alternative; boundary=047d7b33d6decd250d04bfe78893
--047d7b33d6decd250d04bfe78893
Content-Type: text/plain; charset=UTF-8
twest
ini sebuah proiduct abru
awdawdawdawdwa
aw
awdawdaw
--047d7b33d6decd250d04bfe78893
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div class=3D"gmail_quote">twest=C2=A0<div><br></div><div>ini sebuah proidu=
ct abru</div><div><br></div><div>awdawdawdawdwa</div><div><br></div><div>aw=
</div><div>awdawdaw</div>
</div><br>
--047d7b33d6decd250d04bfe78893--
*这是一个片段,我目前做错了。
$parts = explode('--', $this->rawemail);
$this->headers = imap_rfc822_parse_headers($this->rawemail);
# var_dump($parts);
# Process the parts
foreach ($parts as $part)
{
# Get Content text/plain
if (preg_match('/Content-Type: text\/plain;/', $part))
{
$body_parts = preg_split('/\n\n/', $part);
# If Above the newline (Headers)
if ($body_parts[0])
{
# var_dump($body_parts[0]);
}
# If Below the newline (Data)
if ($body_parts[1])
{
var_dump($body_parts[1]);
}
}
# Get Content text/html
if (preg_match('/Content-Type: text\/html;/', $part))
{
$body_parts = preg_split('/\n\n/', $part);
# If Above the newline (Headers)
if ($body_parts[0])
{
# var_dump($body_parts[0]);
}
# If Below the newline (Data)
if ($body_parts[1])
{
var_dump($body_parts[1]);
}
}
答案 0 :(得分:4)
我认为你最好一次下电子邮件,因为它是在电子邮件形成中更为关键的换行符。
您的规则是:
我很久以前记得的东西 - 所以下面可能不是100%准确,但我会提到以防万一。注意带有attachemnts的文件,因为你可以获得两个“边界”标记。但是一个边界是另一个边界,所以如果你遵循上面的规则(即抓住第一个边界并坚持下去)那么你应该没事。但是用一些附件来测试你的脚本:)
编辑:问题中提出的其他信息。电子邮件可以包含用户希望编码的“主体”。您可以使用普通的,HTML,UTF编码版本,RTF版本甚至摩尔斯电码版本(如果客户端知道如何处理“内容类型莫尔斯/代码”!)。有时你不会得到纯文本,但只有HTML版本(顽皮的用户)。有时HTML实际上没有内容类型声明(可能会也可能不会显示为HTML,具体取决于客户端)。边界也会分离附件。丰富的测试是来自Outlook的问题(尽管,公平地说,它通常被转换为HTML)。所以不,介于0和X体之间。