0

我需要从 IMAP 消息中提取 URL,到目前为止,我已经能够以纯文本格式提取消息,但不能提取链接,我真的可以在这里使用一些帮助。这是我到目前为止得到的

$section    = empty( $attachments ) ? 1 : 1.2;  
$text       = imap_fetchbody($connection, $msgno, $section );

echo $text."<hr/>";

我尝试将节号从 1 : 1.1 更改为 1: 1.2 但没有帮助。

我需要将邮件提取为 html,以便它包含链接,我需要更改什么来获取链接?

4

1 回答 1

0

上面代码中的一些错误:

  • 用作1.2浮点数而不是字符串。这是一个字符串,你1.2没有被转换为1.2000000001.
  • 有一个硬编码的部件号以防邮件带有多个正文部分——阅读RFC 3501, p. 中的描述。56详细了解这些身体部位是什么、它们如何工作以及如何找出哪些与您相关
  • 不执行任何解码Content-Transfer-Encoding或处理字符集转换。您显然对消息的文本部分感兴趣,这些可能以多种编码形式到达,例如您必须解码的quoted-printablebase64必须解码的。如果您想安全地使用它(您应该,它已经是 2013 年了,并且 URL 中有有趣的字符,而不是谈论 IDN),也从它们的字符集转换为 unicode,然后才匹配内容。
  • 您可能应该检查至少所有顶级正文部分的 MIME 类型,这样您就不会尝试检测附加图像中的“链接”或未解码的 zip 文件的二进制表示等。
于 2013-06-14T16:55:47.083 回答