Я пытаюсь отправить smtp
просьба к моему smtp
сервер установлен в freebsd
и прочитать успешный или неудачный ответ?
Это мой код:
$url = '192.168.1.227:25/';
$user = 'admin';
$pass = '123';
$params = array(
'User' => $user,
'passwor' => $pass,
'to' => '[email protected]',
'subject' => 'test',
'html' => 'body',
'text' => 'text',
'from' => '[email protected]',
);$session = curl_init($url);
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
curl_setopt($session, CURLOPT_HEADER, 1);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
$info = curl_getinfo($session);
curl_close($session);
echo $response;
print_r($info);
CURL не подходит для этого. Хотя это поддерживает простые SMTP-соединения, как правило, он не предназначен для более сложных случаев использования.
cURL разработан для HTTP, где у вас обычно есть один запрос с набором параметров (заголовки HTTP-запроса) и один ответ.
SMTP-связь, однако, больше похожа на «пинг-понг». Чтобы реализовать SMTP-клиента, вам придется работать с необработанными сокетами TCP: написать SMTP-команду в сокете, прочитать / обработать ответ, написать следующую команду и так далее.
Кроме того, SMTP, как он реализован в настоящее время, имеет множество причуд и странных сторон на серверах и клиентах. Например, подход на основе PHP / cURL не сможет поддерживать серые списки, если вы не будете управлять своей собственной очередью для временно отклоненной почты.
Если у вас нет веских причин для этого (и много времени, а также высокая устойчивость к фрустрации), вы должны использовать клиентскую библиотеку, такую как Swiftmailer, вместе с настоящим MTA для исходящей почты.
Если, с другой стороны, вам просто интересно играть с необработанным подключением к почтовому серверу, используйте такой инструмент, как netcat
из командной строки и работать через как такой сценарий.
..
¹ если вы на мгновение оставите в покое и т.д.
Других решений пока нет …