(php) ошибка fsockopen, но соединение telnet работает - PullRequest
0 голосов
/ 21 января 2012

Я очень запутался, я пытаюсь отправлять электронные письма через PHP, но у меня проблемы с определенным почтовым сервером, с другим все работает нормально.

Когда я пытаюсь:

$smtp_conn = fsockopen('mail.onedomain.com',25,$errno,$errstr,30);
echo $errno . '<br>' . $errstr;

Я получаю:

110
Connection timed out

но ...

Я иду в Пуск> cmd и пишу:

telnet mail.onedomain.com 25

И я получаю:

220 server1.onedomain.local Microsoft ESMTP MAIL Service Ready at Sat, 21 Jan 2012 00:05:04 +0100

Я не понимаю этого, соединение происходит с telnet, но я не могу сделать это в PHP с теми же параметрами ... у кого-то есть идеи?

Я подозреваю, что проблема в неправильной конфигурации почтового сервера, но ... как я могу демострировать?

Спасибо! Карлес.

1 Ответ

0 голосов
/ 15 марта 2016

Позор, это никогда не получало ответа. Я бился головой о кирпичную стену точно такой же проблемой. Bash telnet работал нормально, но php fscokopen просто не удался.

Решение: - Использовать ip вместо сервера вместо CNAME.

Так что вместо:

$smtp_conn = fsockopen('mail.onedomain.com',25,$errno,$errstr,30);
echo $errno . '<br>' . $errstr;

Использование:

$smtp_conn = fsockopen('000.000.000.000',25,$errno,$errstr,30);
echo $errno . '<br>' . $errstr;
...