gpt4 book ai didi

php imap 检查邮件是否有附件

转载 作者:搜寻专家 更新时间:2023-10-31 21:15:24 27 4
gpt4 key购买 nike

我正在尝试构建一个小型网络邮件应用程序。当我阅读收件箱中的所有电子邮件时,我想显示每封邮件是否有附件。这可行,但问题是这样做需要很长时间,1Mb 电子邮件附件大约需要 0.5 秒。将其乘以收件箱中具有大附件文件的所有电子邮件:|我的问题是:如何在不加载整封电子邮件的情况下检查电子邮件是否已附加?那可能吗 ?下面是我现在使用的代码:

function existAttachment($part)
{
if (isset($part->parts))
{
foreach ($part->parts as $partOfPart)
{
$this->existAttachment($partOfPart);
}
}
else
{
if (isset($part->disposition))
{
if ($part->disposition == 'attachment')
{
echo '<p>' . $part->dparameters[0]->value . '</p>';
// here you can create a link to the file whose name is $part->dparameters[0]->value to download it
return true;
}
}
}
return false;
}

function hasAttachments($msgno)
{
$struct = imap_fetchstructure($this->_connection,$msgno,FT_UID);
$existAttachments = $this->existAttachment($struct);

return $existAttachments;
}

最佳答案

要检查邮件是否有附件,使用$structure->parts[0]->parts。

$inbox = imap_open($mailserver,$username, $password, null, 1, ['DISABLE_AUTHENTICATOR' => 'PLAIN']) or die(var_dump(imap_errors()));

$unreadEmails = imap_search($inbox, 'UNSEEN');

$email_number = $unreadEmails[0];

$structure = imap_fetchstructure($inbox, $email_number);

if(isset($structure->parts[0]->parts))
{
// has attachment
}else{
// no attachment
}

关于php imap 检查邮件是否有附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9939463/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com