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

Не удается парсить почту?

В чем ошибка?
Делаю как написано тут https://habrahabr.ru/post/126448/
Мой фаил /etc/aliases :
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: test
mail: "|php -q /home/mail.php"

почтовый ящик mail@mail.boot.*****.ru

Почта на этот ящик приходит и уходит.
код /home/mail.php
<?php

/**
 * Скрипт для автоматической обработки входящих писем
 *
 * Все данные smtp-конверта письма RECIPIENT, SENDER и другие postfix 
 * передает через окружение $_ENV; полный перечень переменных:
 * http://www.postfix.org/local.8.html секция EXTERNAL COMMAND DELIVERY 
 */

//текст сообщения считываем из STDIN
$msg = file_get_contents("php://stdin");

//отправитель письма
$sender = getenv('SENDER');

//получатель письма
$recipient = getenv('RECIPIENT');

//парсинг сообщения
list($header, $body) = explode("\n\n", $msg, 2);

//выделим строки с Subject: и From:
$subject = '';
$from = '';
$headerArr = explode("\n", $header);
foreach ($headerArr as $str) {
  if (strpos($str, 'Subject:') === 0) {
    $subject = $str;
  }
  if (strpos($str, 'From:') === 0) {
    $from = $str;
  }
}
 
 
//для отладки сохраняем полученное сообщение в лог:
$logMsg = "=== MSG ===\n";
$logMsg .= "SENDER: $sender\n";
$logMsg .= "RECIPIENT: $recipient\n";
$logMsg .= "$from\n";
$logMsg .= "$subject\n\n";
$logMsg .= "$msg\n";
file_put_contents('/tmp/inb.log',$logMsg, FILE_APPEND); ?>


Сервер Debian+roundcube+ispconfig

Что делаю не так?
  • Вопрос задан
  • 1127 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вообще-то, если почта на этот адрес приходит, значит ваша строка в aliases не работает, иначе вся почта на этот адрес уходила бы на скрипт. Команду newaliases выполнили?
Ответ написан
Одинарная кавычка пропущена в строке с mail(). Проверьте вручную что скрипт запускается и отрабатывает.
Ответ написан
Ваш ответ на вопрос

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

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