Я просто столкнулся с той же проблемой и решил ее, используя:
@require_once "Mail.php";
...
$smtp = @Mail::factory('smtp', array('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = @$smtp->send($to, $headers, $body);
if (@PEAR::isError($mail)) {
Обратите внимание, что я добавил @
ко всем вызовам "груша / почта".
Я предпочитаю это решение, чтобы изменить общие настройки сообщений об ошибках, поскольку я не хочу видеть предупреждения «груша / почта», но хочу видеть те из них, которые относятся к моему собственному коду.