Задать вопрос

Как отправить письмо дальше в sendmail после заглушки?

Здравствуйте.
Я пытаюсь сделать некоторую прослойку для писем на php 7.0, чтобы подвергнуть их небольшой обработке и самое главное - лимитированию исходящих писем. В php.ini я перенаправил письма в свой файл, где открыл stdin поток и взял нужные данные, занес в таблицу, посчитал. Tеперь мне нужно отрпавить их обратно, причем тем же потоком отправить дальше в sendmail. Я очень долго гуглил это и до сих пор не нашел решения.
P.S. Все делаю я локально в докере, почтового сервера у меня нет, есть Postfix(по сути можно отправить в постфикс, но тут я даже близко понять не могу как), возможно, позже уже буду настраивать все это на сервере.
P.S.S Мне не нужны анологичные решения всей задачи, нужно сделать именно это.

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

#!/usr/bin/php
<?php
$stream = '';
$fp = fopen('php://stdin','r');

while($t=fread($fp,2048))
{
    if( $t===chr(0) )
        break;
    $stream .= $t;
}
//$count_mails - количество писем с определенного домена. 
if($count_mails > 50){
    exit(0);
}
//вот здесь должно быть что-то что отправит письма дальше после всех изысканий.
  • Вопрос задан
  • 254 просмотра
Подписаться Простой 1 комментарий
Решения вопроса 1
@LKIkost Автор вопроса
Здравствуйте, решением стала строка:
exec("echo '{$stream}' | sendmail -i -t");
Тоесть мы отправили дальше поток в sendmail, куда он собственно и шел.
Письма отловил я с помощью фейкового почтового сервера, как только пришла идея его поставить, методом тыка и тестов решение нашлось быстро.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@tagplus5
Если в докере настроен postfix, то из php можно отправить функцией mail() php.net/manual/ru/function.mail.php.
Можно использовать SMTP, например яндекса https://github.com/PHPMailer/PHPMailer
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы