выдержка из моего собственного проекта:
$currentlySubscribed = array_map(function($e){
return $e->name;
}, imap_getsubscribed($conn, $mailbox, '*');
$toSubscribe = array_diff($expected, $currentlySubscribed);
foreach($toSubscribe as $subscribeMe){
if(!imap_subscribe($conn, $subscribeMe)){
throw new RuntimeException('Failed to subscribe');
}
}