webew
Войти » Регистрация
 
Протоколы :: электронная почта

Как заставить postfix принимать почту и класть ее в файл?

29 июня 2015, 23:03
Автор: tehnology-online
Поставил postfix. Наладил отправку. А как мне теперь принять почту? И как вообще проверить, в чем загвоздка. Как итог мне нужно принять почту для всех несуществующих пользователей (*@site.ru) и для начала записать ее в файл.
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
NO USERPIC

tehnology-online

Посмотрел в логи нашел там

NOQUEUE: reject: RCPT from forward20.mail.yandex.net[95.108.253.145]: 454 4.7.1 ........
disconnect from forward20.mail.yandex.net[95.108.253.145]
connect from forward20.mail.yandex.net[95.108.253.145]
30.06.2015, 00:24
Ответить

paulus

Вы же уже настроили sendmail для этого? И еще — для начала нужно в файл, а для конца? :)

Насколько я помню нашу историю переписки, Вы в конце захотите получить вот такой файл:
@domainname.ru   | "/usr/bin/php5 /path/to/script"


Записываем это, например, в /etc/postfix/virtual_maps, добавляем в main.cf:
virtual_alias_maps      = hash:/etc/postfix/virtual_maps

не забываем выполнить
postmap /etc/postfix/virtual_maps
и перезапускаем postfix.

Ребята в интернете рекомендуют еще сделать транспортную карту, но, кажется, в нашем случае это не нужно.
30.06.2015, 13:24
Ответить
NO USERPIC

tehnology-online

Для начала я пытаюсь в файл записать поэтому моя инструкция такая

@site.ru /home/login/mail

А там уже и несколько других вариантов хотелось попробовать, если с этим разберусь.

Логи такие

Jun 30 14:56:35 sd1234-02 postfix/master[4048]: terminating on signal 15
Jun 30 14:56:35 sd1234-02 postfix/master[4237]: daemon started -- version 2.11.0, configuration /etc/postfix
Jun 30 14:56:44 sd1234-02 postfix/smtpd[4242]: connect from forward13o.cmail.yandex.net[37.9.109.182]
Jun 30 14:56:44 sd1234-02 postfix/smtpd[4242]: NOQUEUE: reject: RCPT from forward13o.cmail.yandex.net[37.9.109.182]: 454 4.7.1 <login@site.ru>: Relay access denied; from=<tehnolog@yandex.ru> to=<login@site.ru> proto=ESMTP helo=<forward13o.cmail.yandex.net>
Jun 30 14:56:44 sd1234-02 postfix/smtpd[4242]: disconnect from forward13o.cmail.yandex.net[37.9.109.182]
Jun 30 14:57:02 sd1234-02 postfix/smtpd[4242]: connect from forward15o.cmail.yandex.net[37.9.109.212]
Jun 30 14:57:02 sd1234-02 postfix/smtpd[4242]: NOQUEUE: reject: RCPT from forward15o.cmail.yandex.net[37.9.109.212]: 454 4.7.1 <login@site.ru>: Relay access denied; from=<tehnolog@yandex.ru> to=<login@site.ru> proto=ESMTP helo=<forward15o.cmail.yandex.net>
Jun 30 14:57:02 sd1234-02 postfix/smtpd[4242]: disconnect from forward15o.cmail.yandex.net[37.9.109.212]
Jun 30 14:57:26 sd1234-02 postfix/smtpd[4242]: connect from forward17m.cmail.yandex.net[5.255.216.148]
Jun 30 14:57:27 sd1234-02 postfix/smtpd[4242]: NOQUEUE: reject: RCPT from forward17m.cmail.yandex.net[5.255.216.148]: 454 4.7.1 <login@site.ru>: Relay access denied; from=<tehnolog@yandex.ru> to=<login@site.ru> proto=ESMTP helo=<forward17m.cmail.yandex.net>
Jun 30 14:57:27 sd1234-02 postfix/smtpd[4242]: disconnect from forward17m.cmail.yandex.net[5.255.216.148]
Jun 30 14:58:02 sd1234-02 postfix/smtpd[4242]: connect from forward12m.cmail.yandex.net[5.255.216.143]
Jun 30 14:58:02 sd1234-02 postfix/smtpd[4242]: NOQUEUE: reject: RCPT from forward12m.cmail.yandex.net[5.255.216.143]: 454 4.7.1 <login@site.ru>: Relay access denied; from=<tehnolog@yandex.ru> to=<login@site.ru> proto=ESMTP helo=<forward12m.cmail.yandex.net>
Jun 30 14:58:02 sd1234-02 postfix/smtpd[4242]: disconnect from forward12m.cmail.yandex.net[5.255.216.143]
Jun 30 14:58:48 sd1234-02 postfix/smtpd[4242]: connect from localhost[::1]
Jun 30 14:59:27 sd1234-02 postfix/smtpd[4263]: connect from forward3m.mail.yandex.net[37.140.138.3]
Jun 30 14:59:27 sd1234-02 postfix/smtpd[4263]: NOQUEUE: reject: RCPT from forward3m.mail.yandex.net[37.140.138.3]: 454 4.7.1 <login@site.ru>: Relay access denied; from=<tehnolog@yandex.ru> to=<login@site.ru> proto=ESMTP helo=<forward3m.mail.yandex.net>
Jun 30 14:59:28 sd1234-02 postfix/smtpd[4263]: disconnect from forward3m.mail.yandex.net[37.140.138.3]
Jun 30 14:59:29 sd1234-02 postfix/smtpd[4263]: connect from forward18o.cmail.yandex.net[37.9.109.216]
Jun 30 14:59:30 sd1234-02 postfix/smtpd[4263]: NOQUEUE: reject: RCPT from forward18o.cmail.yandex.net[37.9.109.216]: 454 4.7.1 <login@site.ru>: Relay access denied; from=<tehnolog@yandex.ru> to=<login@site.ru> proto=ESMTP helo=<forward18o.cmail.yandex.net>
Jun 30 14:59:30 sd1234-02 postfix/smtpd[4263]: disconnect from forward18o.cmail.yandex.net[37.9.109.216]
30.06.2015, 15:07
Ответить
NO USERPIC

tehnology-online

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = sd1234-02.keymachine.de
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mail.site.ru, sd1234-02.keymachine.de, localhost.keymachine.de, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

luser_relay = login
local_recipient_maps =
virtual_alias_maps = hash:/etc/postfix/virtual_maps
30.06.2015, 16:14
Ответить

paulus

mydestination = mail.site.ru, sd1234-02.keymachine.de, localhost.keymachine.de, localhost

Вот тут хорошо бы вписать адрес site.ru как «свой», иначе postfix думает, что ему нужно передать письма дальше, а прав не хватает.
30.06.2015, 18:28
Ответить
NO USERPIC

tehnology-online

В общем сделал так

virtual_mailbox_domains = /etc/postfix/vhosts
virtual_mailbox_base = /home
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_uid_maps = static:1001, static:1002
virtual_gid_maps = static:1001, static:1002

В /etc/postfix/vmailbox

@site.ru login/tmp/mail

Запись в файл идет.

а теперь я хочу попробовать отдать php скрипту и пишу в /etc/postfix/vmailbox
@site.ru "|php5-cgi -c /path/to/php.ini /site.ru/public_html/mail.php"

(delivery failed to mailbox /home/| "php5-cgi -c /path/to/php.ini /site.ru/public_html/mail.php": unable to create lock file /home/| "php5-cgi -c /path/to/php.ini /site.ru/public_html/mail.php".lock: No such file or directory)
01.07.2015, 01:51
Ответить

paulus

Последовательность кавычки и символа передачи в сценарий важна. Поменяйте их местами (нужно сделать так, как в моем примере выше).
01.07.2015, 12:01
Ответить
NO USERPIC

tehnology-online

Ну я и так и так пробовал. На самом деле последняя ошибка именно с таким примером.
01.07.2015, 13:28
Ответить

paulus

Да, текст ошибки я не прочитал, сматчился глазами на порядок :(

Судя по тексту ошибки мы берем virtual_mailbox_base, добавляем то, что в таблице, и получаем странную конструкцию. base же тут не нужен?
01.07.2015, 14:13
Ответить
NO USERPIC

tehnology-online

virtual_mailbox_base да не нужен, но если ставлю пустой параметр или удаляю вовсе, то возникает ошибка что он отсутствует
01.07.2015, 14:35
Ответить

paulus

А почему Вы не хотите настроить через virtual_alias_maps, а не через virtual_mailbox_maps? Ну то есть самый первый мой ответ работает и реализует то, что Вы хотите получить в конечном итоге — почему не использовать его?
01.07.2015, 16:55
Ответить
NO USERPIC

tehnology-online

А у Вас он работает? Мне удалось сделать так. Сначала направив почту одному пользователю через virtual_alias_maps, а уже в /etc/aliases на сам скрипт.
01.07.2015, 23:00
Ответить

paulus

не дословно та же конфигурация, но похожая. В любом случае, рад, что получилось :)
01.07.2015, 23:45
Ответить
NO USERPIC

tehnology-online

Спасибо. Вы как всегда помогли, и как минимум направили в нужную сторону.
01.07.2015, 23:54
Ответить
NO USERPIC

tehnology-online

Спасибо. Вы как всегда помогли, и как минимум направили в нужную сторону.
01.07.2015, 23:54
Ответить
NO USERPIC

tehnology-online

Подскажите. А postfix c mysql только на вывод работает? На запись не работает?
02.07.2015, 20:32
Ответить
NO USERPIC

tehnology-online

Решил прикрутить директиву
virtual_mailbox_maps = mysql:/etc/postfix/vmailbox.cf
к базе

Проверяю с консоли
postmap -q user1@site.ru mysql:/etc/postfix/vmailbox.cf
на выхолопе получаю содержимое таблицы с директорией

А вот при попытке отправить сообщение получаю ошибку
warning: mysql:/etc/postfix/vmailbox.cf lookup error for "user1@site.ru"
02.07.2015, 23:22
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100

Реклама: