change:
list ($mailbox, $host) = explode('@', $string, 2);
to
$tmpArr = explode('@', $string, 2);
if ( count($tmpArr) > 1 ) {
$mailbox = $tmpArr[0];
$host = $tmpArr[1];
} else {
$mailbox = $string;
$host = "nodomain.com";
}
We use aliases at work, and an alias doesn't have an @ on it.