Я новичок в postfix, мне нужно настроить его так, чтобы любое входящее письмо на мой сервер доставлялось в локальную учетную запись пользователя (/ etc / passwd). На моем сервере не будет никаких виртуальных доменов ($ mydestination), перечисленных где-либо, мне просто нужно перехватывать неизвестные письма на локальную учетную запись пользователя.
Я видел некоторые темы, связанные с этой конфигурацией с использованием luser_relay и local_receipients_maps. но сейчас я не знаю, как их использовать, если у вас есть время, не могли бы вы рассказать мне, как это использовать? Я использую postfix на сервере centos 5.5
Заранее спасибо.
Если все в порядке ... вы можете добавить следующее в свой main.cf
luser_relay = username
local_recipient_maps =
Замените имя пользователя именем пользователя или полным адресом получателя, например john
или john@mydomain.com
Вот как я это сделал:
virtual_transport = regex:/etc/postfix/virtual
root@testmailm01:/etc/postfix# cat virtual
/system/ SystemsLog@example.com ###this allows you to send outbound logs to another server
/*/ webtest ###catch everything and drop it in the webtest mailbox
Наши серверы альфа-тестирования указывают на этот ящик непосредственно как на свои почтовые серверы, чтобы разработчики могли экспериментировать с адресами электронной почты. Кроме того, наши основные SMTP-серверы имеют транспортную директиву:
[adminuser@smtpserver01 adminuser]$ cat /etc/postfix/transport
example.com :[exchange.server.addy]
testing.example.com :[testmailm01.example.cfx]
Это позволяет разработчикам тестировать определенные вещи в среде beta и prod, изменяя @ на @ testing.example.com, который перенаправляет все, что имеет этот суффикс, на указанный выше «тестовый» почтовый сервер.
Надеюсь, это поможет.
edit: вы настраивали параметр transport_maps? стандартная информация «помогите мне» для проблем с постфиксом - это вывод команд «postconf -n» и «cat / etc / postfix / transport». Кроме того, если вы можете найти полный диалог с ошибкой, это очень поможет.
если вы можете найти одну из строк ("grep 'web58007.mail.re3.yahoo.com' / var / log / maillog" или, возможно, /var/log/mail.log)
Jul 26 21:30:01 fjdx421.example.cfx postfix/qmgr[13444]: 2FBBF17B433: to=<oracle@oram101.example.cfx>, relay=none, delay=0, status=deferred (delivery temporarily suspended: connect to oram101.example.cfx[172.18.52.101]: Connection refused)
странно выглядящий буквенно-цифровой идентификатор является псевдо-уникальным идентификатором для этого разговора, выполните команду grep 2FBBF17B433 / your / mail / logfile и опубликуйте этот вывод
edit: во-первых, прошу прощения ... Ранее я ссылался на транспортные карты, и вам нужно определить "virtual_alias_maps". В моем первом ответе это было правильно, но потом по какой-то причине мой мозг привязался к transport_maps ... Я думаю, стареет.
Глядя на ваш вывод postconf, вам нужно определить:
postconf -e virtual_alias_maps = hash:/etc/postfix/virtual
postconf -e recipient_canonical = hash:/etc/postfix/recipient_canonical
затем отредактируйте / etc / postfix / virtual:
/*/ <your.test.account>
и / etc / postfix / recipient_canonical:
/./ webtest
а затем перезагрузите постфикс с помощью postfix reload
Как только это будет сделано, вам необходимо убедиться, что вы правильно подключаетесь к этому почтовому серверу, поскольку он, скорее всего, нигде не указан как запись MX. Самый простой метод тестирования - это:
telnet <mail.server.addy> 25
Пример разговора с в основном ложной информацией:
Connected to testmailm01.example.cfx.
Escape character is '^]'.
220 testmailm01 ESMTP Postfix
HELO nowhere.com
250 testmailm01
mail from: someone@someplace.com
250 2.1.0 Ok
rcpt to: noone@noplace.com
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
bla bla blah
.
250 2.0.0 Ok: queued as 9B4E820E249
Записи в журнале этого разговора:
root@testmailm01:/etc/postfix# grep 9B4E820E249 /var/log/mail.log
Jul 27 08:37:17 testmailm01 postfix/smtpd[16125]: 9B4E820E249: client=someuser.example.cfx[172.18.47.102]
Jul 27 08:37:25 testmailm01 postfix/cleanup[18529]: 9B4E820E249: message-id=<20100727133717.9B4E820E249@testmailm01>
Jul 27 08:37:25 testmailm01 postfix/qmgr[1556]: 9B4E820E249: from=<someone@someplace.com>, size=359, nrcpt=1 (queue active)
Jul 27 08:37:25 testmailm01 postfix/local[18554]: 9B4E820E249: to=<webtest@testmailm01.example.cfx>, orig_to=<noone@noplace.com>, relay=local, delay=17, delays=17/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Jul 27 08:37:25 testmailm01 postfix/qmgr[1556]: 9B4E820E249: removed
У меня также настроен virtual_transport, хотя я не уверен, перечитав описание, почему. На всякий случай, если это необходимо (сначала попробуйте описанное выше, затем добавьте это, если оно все еще не работает). Эта коробка полупроизводственная, поэтому я не могу просто возиться с конфигурацией, чтобы протестировать материал:
postconf -e virtual_transport = regex:/etc/postfix/virtual
Виртуальный файл остается неизменным, хотя вам всегда нужно убедиться, что вы разместили все файлы, которые используют оператор hash: с:
postmap <file>
изменить: в соответствии с этим:
Jul 28 20:17:18 rabbits postfix/smtpd[1369]: NOQUEUE: reject: RCPT from mail-wy0-f182.google.com[74.125.82.182]: 554 5.7.1 <ss@amamun.info>: Relay access denied; from=<almamunbd@gmail.com> to=<ss@amamun.info> proto=ESMTP helo=<mail-wy0-f182.google.com>
вы отправляете электронное письмо на сайт amamun.info, но ваше место назначения содержит:
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = test.com
myhostname = rabbits.test.com
без виртуального я не вижу ничего, что позволило бы вашему серверу получать электронную почту, предназначенную для @ amamun.info. В зависимости от того, что вы хотите делать с электронной почтой, вам нужно либо добавить этот домен в свой список mydestination, relay_domains, либо как виртуальный.
Спасибо за ответ, здесь я снова подробно описываю свои требования
Мне нужно настроить свой постфикс так, чтобы он улавливал всю почту, неважно, спам ли это, и вся входящая почта должна поступать в учетную запись пользователя локальной системы. Postfix не будет иметь списка виртуальных доменов. Для этого я установил postfix (postfix-2.3.3-2.1.centos.mysql_pgsql) на сервере centos 5.4. Вот моя конфигурация:
[root@rabbits postfix]# /usr/sbin/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
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = test.com
myhostname = rabbits.test.com
mynetworks = 127.0.0.0/8
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
relay_domains =
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
[root@rabbits postfix]#
Предположим, у меня есть доменное имя something.info, его запись MX указывает на этот сервер, но его доменное имя нигде не указано в файлах конфигурации postfix, но мне нужно пересылать сообщения электронной почты, предназначенные для «something@something.info», в учетную запись локальной системы. как "catchtest", я хочу перехватывать все письма других неизвестных доменов на ту же локальную учетную запись, неважно, спам ли это. так что для этого мне действительно нужно сделать в файлах конфигурации postfix.
Спасибо.
РЕДАКТИРОВАТЬ: Привет, спасибо за ваши подробные шаги, я пробовал это, но все тот же результат, перед доставкой почты он отклоняется с сообщением Relay denied.
Jul 28 20:17:18 rabbits postfix/smtpd[1369]: NOQUEUE: reject: RCPT from mail-wy0-f182.google.com[74.125.82.182]: 554 5.7.1 <ss@amamun.info>: Relay access denied; from=<almamunbd@gmail.com> to=<ss@amamun.info> proto=ESMTP helo=<mail-wy0-f182.google.com>
Jul 28 20:17:19 rabbits postfix/smtpd[1369]: disconnect from mail-wy0-f182.google.com[74.125.82.182]
Вот файл main.cf после модификации с вашей конфигурацией
[root@rabbits postfix]# /usr/sbin/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
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = test.com
myhostname = rabbits.test.com
mynetworks = 127.0.0.0/8
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
relay_domains = sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_transport = regex:/etc/postfix/virtual
#cat /etc/postfix/virtual
/*/ admin@localhost
#cat recipient_canonical
/./ admin