PHP imap_标题信息检查是否存在

PHP imap_标题信息检查是否存在,php,Php,我使用PHP函数imap_open获取每封电子邮件的标题: $header=imap_headerinfo($inbox,$email_number); 然后,我在抄送的电子邮件地址上运行foreach循环: foreach ($header->cc as $cc_extra) { } 在运行foreach循环之前,如何检查$header->cc中是否有任何内容 注意: -$inbox是邮箱的连接字符串 -$email\u number是每封电子邮件的电子邮件编号您可以结合使用,如下

我使用PHP函数
imap_open
获取每封电子邮件的标题:

$header=imap_headerinfo($inbox,$email_number);
然后,我在抄送的电子邮件地址上运行foreach循环:

foreach ($header->cc as $cc_extra) {

}
在运行foreach循环之前,如何检查
$header->cc
中是否有任何内容

注意: -
$inbox
是邮箱的连接字符串
-
$email\u number
是每封电子邮件的电子邮件编号

您可以结合使用,如下所示:

isset
将测试变量是否设置为非
null

is_array
将测试该变量是否实际是一个数组

编辑

或者,如中所示,您可以将变量显式转换为
foreach
中的数组,例如

foreach ((array)$header->cc as $cc_extra) {
}
我使用下一个代码:

$connection = imap_open("{192.168.1.170:993/imap/ssl/novalidate-cert}INBOX", $send_from_our, $send_from_pass) or die('Cannot connect to your sever: ' . imap_last_error());
$emails = imap_search($connection, 'UNSEEN');
$unread = 0;
$count = imap_num_msg($connection);

for ($msgno = 1; $msgno <= $count; $msgno++) {
    $cc='';
    $to='';
    $headers = imap_headerinfo($connection, $msgno);           
    if ($headers->Unseen == 'U') {
        $unread++;
        if (isset($headers->cc) && is_array($headers->cc)) {
            foreach ($headers->cc as $cc_extra) {
                $mailbox_cc=strtolower($cc_extra->mailbox);
                $host_cc=strtolower($cc_extra->host);
                $cc .= $mailbox_cc . "@" . $host_cc .',';
            }
            $cc= rtrim($cc, ',');
        }
        if (isset($headers->to) && is_array($headers->to)) {
            foreach ($headers->to as $to_extra) {
                $mailbox_to=strtolower($to_extra->mailbox);
                $host_to=strtolower($to_extra->host);
                if ($mailbox_to=='$MY_EMAIL_NAME' and $host_to='$MY_HOST_NAME') {
                    continue;
                }
                $to .=$mailbox_to . "@" . $host_to.',';
            }
            $to=rtrim($to, ',');
        }
        $fromaddr = $headers->from[0]->mailbox . "@" . $headers->from[0]->host;
        $full_reply_to=rtrim($fromaddr.','.$cc.','.$to, ',');
$connection=imap_open({192.168.1.170:993/imap/ssl/novalidate cert}收件箱“,$send_from_our,$send_from_pass)或die('无法连接到服务器:'.imap_last_error());
$emails=imap_搜索($connection,'UNSEEN');
$unread=0;
$count=imap\u num\u msg($connection);
对于($msgno=1;$msgno Unseen=='U'){
$unread++;
if(isset($headers->cc)和&is_数组($headers->cc)){
foreach($headers->cc as$cc\u extra){
$mailbox\u cc=strtolower($cc\u extra->mailbox);
$host\u cc=strtolower($cc\u extra->host);
$cc.=$mailbox_cc.@“$host_cc.”;
}
$cc=rtrim($cc,,');
}
if(isset($headers->to)&&is_数组($headers->to)){
foreach($headers->to as$to_额外){
$mailbox\u to=strtolower($to\u extra->mailbox);
$host\u to=strtolower($to\u extra->host);
如果($mailbox_to=='$MY_EMAIL_NAME'和$host_to='$MY_host_NAME')){
持续
}
$to.=$mailbox\u to.@“$host\u to.”;
}
$to=rtrim($to,,');
}
$fromaddr=$headers->from[0]->mailbox.@“..$headers->from[0]->host;
$full_reply_to=rtrim($fromaddr.','.$cc.','.$to',');
此代码接收来自maibox的所有未读电子邮件,并将每个电子邮件的所有抄送地址和收件人地址(不包括我的个人地址)设置为$full_reply_TO

可能重复的
$connection = imap_open("{192.168.1.170:993/imap/ssl/novalidate-cert}INBOX", $send_from_our, $send_from_pass) or die('Cannot connect to your sever: ' . imap_last_error());
$emails = imap_search($connection, 'UNSEEN');
$unread = 0;
$count = imap_num_msg($connection);

for ($msgno = 1; $msgno <= $count; $msgno++) {
    $cc='';
    $to='';
    $headers = imap_headerinfo($connection, $msgno);           
    if ($headers->Unseen == 'U') {
        $unread++;
        if (isset($headers->cc) && is_array($headers->cc)) {
            foreach ($headers->cc as $cc_extra) {
                $mailbox_cc=strtolower($cc_extra->mailbox);
                $host_cc=strtolower($cc_extra->host);
                $cc .= $mailbox_cc . "@" . $host_cc .',';
            }
            $cc= rtrim($cc, ',');
        }
        if (isset($headers->to) && is_array($headers->to)) {
            foreach ($headers->to as $to_extra) {
                $mailbox_to=strtolower($to_extra->mailbox);
                $host_to=strtolower($to_extra->host);
                if ($mailbox_to=='$MY_EMAIL_NAME' and $host_to='$MY_HOST_NAME') {
                    continue;
                }
                $to .=$mailbox_to . "@" . $host_to.',';
            }
            $to=rtrim($to, ',');
        }
        $fromaddr = $headers->from[0]->mailbox . "@" . $headers->from[0]->host;
        $full_reply_to=rtrim($fromaddr.','.$cc.','.$to, ',');