Отправка почты через fsockopen? - PullRequest
0 голосов
/ 04 ноября 2010

Я знаю, что это возможно, но можно ли обойтись без удаленного SMTP-сервера или чего-то подобного? В основном я хочу отправлять почту с PHP, но без mail ()

Ответы [ 3 ]

1 голос
/ 05 ноября 2010

Я не уверен, что именно вы подразумеваете под « без удаленного SMTP-сервера », так как при любой доставке почты должен быть задействован хотя бы один из них - тот, который получает почту на счет получателя. ...

То, что вы, вероятно, можете сделать (решать, стоит ли усилий), это использовать функции сокетов PHP для открытия соединения через порт 25 с удаленным почтовым сервером. Google 'SMTP telnet' для некоторых примеров того, как выглядит SMTP-сессия (довольно просто, чтобы быть правдой), а затем Google для 'SMTP codes' для более подробного объяснения того, что удаленный сервер говорит вам.

0 голосов
/ 05 ноября 2010

Чтобы не использовать mail (), загляните в PHPMailer

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

Я могу ошибаться, но вы всегда будете использовать SMTP-сервер, даже если этот сервер является просто веб-сервером с sendmail на нем. Если вы используете PHP на Windows, вам нужно включить IIS во встроенной службе SMTP.

0 голосов
/ 04 ноября 2010

Возможно, но не совсем тривиально, учитывая тот факт, что вы должны быть знакомы с SMTP, POP3 и / или IMAP для фактического обмена данными с почтовым сервером.

Вам необходимо закодировать свое приложение, чтобы оно имитировало поведение MTA , то есть, если вы собираетесь делать то же, что и функция mail () - и с использованием сокетов. Если вы работаете в Linux, вы можете сделать из ОС вызов sendmail.

...