LINUX.ORG.RU
решено ФорумAdmin

Qmail + PHP CLI


0

1

Приветствую всех собравшихся в столь раннее время)

Возник вопрос - имеется сконфигуренный qmail. Встала задача - нужно при получении письма на ящик request@example.com скармливать его php-скрипту через stdin, либо просто запускать этот скрипт.

Что сделано:

В директорию /var/qmail/aliaces добавлен файл .qmail-request с содержимым

|/usr/bin/php -q /root/mail.php
Не помогает - письма исправно складываются в /home/vpopmail/domains/example.com/request/Maildir, скрипт не отрабатывает.

Права на скрипт - 777, чтоб уж точно исполнялся)

ЧТЯДНТ?)

Заранее спасибо.

Ну, возможно, хоть подскажете, как это можно иначе реализовать?)

teamfighter ()

скармливать его php-скрипту через stdin

Зачем?

Не помогает - письма исправно складываются в

он, может, даже не запускается. Скрипт то покажи.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Скрипт простой как валенок - запускается на ура.

<?php
$to      = 'test@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

teamfighter ()
Ответ на: комментарий от zgen

Нужен для реализации обработки полученных писем php-скриптом.

Приведенный скрипт - тестовый.

В дальнейшем будет написан робот.

Я спрашиваю, зачем он нужен, тем более, такой идиотский.

Какое это отношение имеет к поставленному вопросу?

teamfighter ()
Ответ на: комментарий от teamfighter

Какое это отношение имеет к поставленному вопросу?

такое, что некоторые операции проще делать штатными средствами, если они имеются, а не цеплять cli языка для web страниц в качестве обработчика.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Я вообще-то наемный работник - мне дали задание - я его выполняю, ибо за это платят) По теме. У меня вообще ощущение, что алиасы, созданные в /var/qmail/alias не отрабатывают в принципе. Создаю /var/qmail/alias/.qmail-root с содержимым &test@example.com По идее, должен являться catchall-алиасом для всех доменов данного сервера, тем не менее, если отправить письмо на адрес root@example.com, то на test@example.com оно не приходит, а возвращается ошибка, что ящик не существует. qmailctl restart для верности делал. Может, подскажете, куда копать?

teamfighter ()
Ответ на: комментарий от teamfighter

мне дали задание - я его выполняю

Я спрашиваю, какое задание вам дали, а вы все никак ответить не можете.

Может, подскажете, куда копать?

Подскажу. Читать документацию, вникать:

dot-qmail processing

Every virtualdomain get's it's own directory under ~vpopmail/domains. Qmail's user/assign file gets an entry for each domain that

points qmail-local deliveries into this directory. Therefore, all normal .qmail file processing works in each virtual domain. .qmail files just need the user name extension to work, i.e. .qmail-joe for user joe. Ezmlm uses .qmail files for processing, so it will work under vpopmail.


If no user matches a .qmail file then the .qmail-default file is processed. This file contains the vdelivermail program. This program reads the authentication database (mysql or vpasswd.cdb) and deliveres the mail into the users directory. The last parameter of vdelivermail can be a maildir owned by vpopmail/vchkpw so that all default mail reception ends up there. Or it can have an email address, and all default mail is forwarded to this address. Last but not least, the last parameter to vdelivermail can be the text bounce-no-mailbox. This will bounce all non matching emails back to the sender.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Вот спасибо. Выключатель щелкнул после магического слова vpopmail. Пользователи хранились в БД, достаточно было создать алиас в базе данных с необходимой строкой)

teamfighter ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.