Постфикс пересылает входящую электронную почту к отправке по почте

Я имею, устанавливают smtp сервер с помощью постфикса с голубятней на работе сервера mail.example.com порта 25. И затем я имею, также устанавливают другое smtp использование сервера, отправляющее по почте (http://mailin.io) на сервере mail.example.com, но работающее на порте 10025.

Цель этой отправки по почте состоит в том, чтобы просто проанализировать входящие электронные письма, полученные от постфикса, и отправляет проанализированные результаты как json через webhooks.

Начиная с постфикса не имеют API для парсинга почтового содержания так вот почему, я использую отправку по почте.

На моем/etc/postfix/main.cf я добавляю эту строку:

relay_domains = localhost:10025 ## this is the mailin smtp server running on port 10025

Вот мой maillog:

[root@mailserver ~]# tail -f /var/log/maillog
Dec 17 04:36:07 mailserver postfix/smtpd[6858]: connect from localhost[127.0.0.1]
Dec 17 04:36:07 mailserver postfix/smtpd[6858]: 6E2C21848: client=localhost[127.0.0.1]
Dec 17 04:36:07 mailserver postfix/cleanup[6868]: 6E2C21848: message-id=<20141217093607.6E2C21848@mailserver.localdomain>
Dec 17 04:36:07 mailserver postfix/qmgr[6386]: 6E2C21848: from=<arman.ortega@cebufreelancer.com>, size=506, nrcpt=1 (queue active)
Dec 17 04:36:07 mailserver postfix/smtpd[6858]: disconnect from localhost[127.0.0.1]
Dec 17 04:36:07 mailserver dovecot: lda(user1.trigger1@cebufreelancer.com): msgid=<20141217093607.6E2C21848@mailserver.localdomain>: saved mail to INBOX
Dec 17 04:36:07 mailserver postfix/pipe[6871]: 6E2C21848: to=<user1.trigger1@cebufreelancer.com>, relay=dovecot, delay=0.09, delays=0.06/0.01/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot service)
Dec 17 04:36:07 mailserver postfix/qmgr[6386]: 6E2C21848: removed

Как я заметил, электронное письмо было успешно послано, но отправка по почте не работает.

Мой вопрос, как отправка по почте получает/анализирует входящую электронную почту, так как постфикс был единственным, кто будет, получил электронное письмо?

Кто-то может объяснить, как сделать это правильно?

Обновленный [12/17/2014]: Вывод от postconf-n команда

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_command = /usr/lib/dovecot/deliver
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = localhost
mynetworks_style = host
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
recipient_delimiter = +
relay_domains = mysql:/etc/postfix/mysql_relay_domains.cf
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = dovecot
virtual_gid_maps = static:5000
virtual_uid_maps = static:5000
0
задан 17 December 2014 в 23:51
1 ответ

Заявление об ограничении ответственности: я предполагаю, что вы только хотите разобрать электронную почту с помощью mailin , и письмо больше не будет доставлено в голубятню.

Для этого замените параметр virtual_transport так, чтобы он стал

virtual_transport = smtp:[127.0.0.1]:10025

Вот и все, вместо доставки его в dovecot, postfix будет передавать письмо в mailin через SMTP-порт 10025.


[ОБНОВЛЕНИЕ]

На основе этого журнала почты

Dec 18 mailserver postfix/smtpd[13147]: connect from mailserver.cebufreelancer.com[9.40.80.111]
Dec 18 mailserver postfix/smtpd[13147]: 61C252F1F: client=mailserver.cebufreelancer.com[9.40.80.111]
Dec 18 mailserver postfix/cleanup[13157]: 61C252F1F: message-id=<20141219033146.61C252F1F@mailserver.localdomain>
Dec 18 mailserver postfix/qmgr[13139]: 61C252F1F: from=<ortegaaa@ph.ibm.com>, size=523, nrcpt=1 (queue active)
Dec 18 mailserver postfix/smtpd[13147]: disconnect from mailserver.cebufreelancer.com[9.40.80.111]
Dec 18 mailserver postfix/smtp[13160]: 61C252F1F: to=<user1.trigger1@cebufreelancer.com>, relay=127.0.0.1[127.0.0.1]:10025, delay=0.14, delays=0.05/0.04/0/0.04, dsn=4.1.8, status=deferred (host 127.0.0.1[127.0.0.1] said: 450 4.1.8 <user1.trigger1@cebufreelancer.com>: Recipient address rejected: Domain not found (in reply to RCPT TO command))

Postfix успешно отправил сообщение в mailin. Эта ошибка

Recipient address rejected: Domain not found

возникла из-за mailin (на самом деле из SMTP-библиотеки simplesmtp). См. Код в github .

Mailin будет пытаться разрешить домен получателя при получении электронной почты. Когда я пытаюсь разрешить домен cebufreelancer.com из моей виртуальной машины, результат NXDOMAIN. Вот почему mailin сообщает об ошибке.

1
ответ дан 4 December 2019 в 17:06

Теги

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