Я считаю, что это не имеет ничего общего с PEARMail.Попробуйте сделать telnet mail.domain.co.uk 25
с компьютера, на котором выполняется PHP.Если вы также получите тайм-аут, это не PEARMail, это сеть.Причин может быть несколько: межсетевые экраны, маршрутизация, некоторые промежуточные ссылки и т. Д.
В основном, этап отправки почты, который не выполняется, - это установление TCP-соединения с почтовым сервером на порту 25. Сначала отлаживайте, а когдавы можете установить telnet
соединение - я вполне уверен, что ваш PHP тоже будет работать.
--- edit ---
Еще одна вещь пришла мне в голову.Если вы случайно запустите это на своем локальном домашнем компьютере, подключенном к стандартному домашнему оператору DSL, многие из них блокируют исходящий порт 25. В этом случае они используют так называемый smarthost
, в основном ретранслятор SMTP.в собственном помещении, которое будет принимать любую почту от вас на любой адрес.Ищите его на веб-страницах вашего интернет-провайдера, они должны сообщить об этом и затем использовать его вместо mail.domain.co.uk.
--- edit2 ---
Давайте исключим PEARMailзатем.
Попробуйте следующий небольшой фрагмент кода в качестве отдельного сценария:
<?php
$fp = fsockopen("mail.domain.co.uk", 25, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
echo "I'm connected!<br />\n";
fclose($fp);
}
?>
Это должно исключить PEARMail, так как это просто офигительная замена telnet бедного человека.