我有以下内容:
if($emails) {
$output = '';
rsort($emails);
foreach($emails as $email_number) {
foreach ([1,2] as $option) {
$structure = imap_fetchstructure($inbox, $email_number);
$overview = imap_fetch_overview($inbox,$email_number,0);
$message = quoted_printable_decode(imap_fetchbody($inbox,$email_number,$option));
$regex = '#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#';
preg_match_all($regex, $message, $links);
foreach ($links[0] AS $link) {
$output .= $link.'<br>';
}
}}
echo $output;
}
除了某些链接包含�且某些链接包含一个小的空白方形框外,此方法还可以。
如果我不使用quoted_printable_decode(imap_fetchbody($inbox,$email_number,$option))
然后某些链接包含= 3D。
我似乎无法弄清楚如何做到这一点。
我也尝试过:
$structure = imap_fetchstructure($inbox, $email_number, FT_UID);
if($structure->encoding == "4"){
$message = base64_decode(imap_fetchbody($inbox, imap_msgno($inbox, $email_number), $option));
} elseif ($structure->encoding == "3") {
$message = imap_qprint(map_fetchbody($inbox, imap_msgno($inbox, $email_number), $option));
} else {
$message = imap_fetchbody($inbox,$email_number,$option);
}
我简直不知道该怎么做。