Итак, я все еще ищу правильный Путь, но для тех, кто сталкивается с подобным вопросом, вот мой грязный метод работы :)
1. Добавьте псевдоним в / etc / aliases
#for my coal for all http-post user under any domain
http-post: |/etc/postfix/mailworker.sh
# or you can make it for specific email
http-post@example.com: |/etc/postfix/mailworker.sh
# or forward it to mail and script
http-post@example.com: your@email.com,|/etc/postfix/mailworker.sh
2. Применить
..]# newaliases
..]# service postfix restart
3. Создайте файл и папку tmp
..]# mkdir /tmp/mailworker
..]# vi /etc/postfix/mailworker.sh
Содержимое файла
#!/bin/bash
cd /tmp/mailworker
read mailfrom
read mailreturnpath
# Could read more headers individually
cat > data-$$
messageFull=`cat data-$$`
messageSafe=$(echo -ne $messageFull | base64);
# Here you do anything you want with email
# As i mentioned for testing I do something very bad here ;) so don't ever do that on any production environment
mysql -h localhost -u myusername -pMyPass1 mydatabase -e "INSERT INTO mytable (id,insdate,mailfrom,mailreturnpath,message) values(NULL,NULL,'$mailfrom','$mailreturnpath','$messageSafe');"
rm -f /tmp/mailworker/data-$$
И все!
но я ищу, как сделать это чистым и безопасным способом, поэтому у меня есть разные причудливые идеи, что делать с электронной почтой :) например, очистить сообщение и перенаправить его в веб-сокет, который используется моим внутренним чатом так далее ...
Итак, вы пытаетесь фильтровать всю почту в домене для одного пользователя или только всю нежелательную почту?
Первое, что вы можете сделать со всеми псевдонимами в вашем MTA. Postfix позволит вам отправлять почту по пользователю / домену / транспорту в сценарий, вероятно, это хорошее место для start ..
Второе, возможно, лучше сделать с помощью программы, которая оценивает вашу нежелательную почту, amavisd-new имеет final_spam_destiny
, spamasssasin можно подключить к fetchmail или .procrc. Сито - еще один вариант, хотя это уже довольно поздно.