You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP从Outlook邮件正文中提取URL链接

PHP提取Outlook邮件正文URL的实现方案

前置处理:解码Quoted-Printable编码

通过IMAP接口获取的Outlook邮件默认会用Quoted-Printable编码,你提供的样例中出现的genera= ted、3D"就是编码特征,需要先解码得到正常文本才能准确匹配:

// $rawImapContent 是你通过imap功能拿到的原始邮件正文
$decodedContent = quoted_printable_decode($rawImapContent);

正则匹配方案

针对HTTP/HTTPS开头的标准URL,使用以下正则即可覆盖绝大多数场景:

/https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)/

完整的PHP调用代码如下:

// 解码原始内容
$decodedContent = quoted_printable_decode($rawImapContent);

// URL匹配正则
$pattern = '/https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)/';

// 执行匹配
preg_match_all($pattern, $decodedContent, $matches);

// 提取所有匹配到的URL
$extractedUrls = $matches[0];

效果验证

用你提供的样例正文运行上述代码,最终得到的匹配结果为:
https://thomsonreuters.sendthisfile.com/sample
完全符合需求。

可选优化点

  • 若需要匹配不带HTTP/HTTPS前缀的裸域名,可将正则开头的https?:\/\/调整为可选规则,你当前需要提取的是文件下载链接,均带HTTPS前缀,现有正则足够使用
  • 若遇到包含特殊字符的非常规URL,可根据实际业务场景扩充正则中允许的字符范围

内容的提问来源于stack exchange,提问作者Programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 17:33:02