Gunakan Postfix untuk meneruskan email ke domain ke alamat yang sama di domain yang berbeda


8

Apakah ada cara untuk mengonfigurasi Postfix untuk menerima email untuk suatu domain (catch-all), dan kemudian meneruskan email itu ke penerima yang sama di domain yang berbeda, tidak tahu apakah penerima itu benar-benar ada?

Saya menggunakan Postfix dengan dukungan MySQL untuk akun virtual.

Jawaban:


8

Tidak, ini tidak mungkin secara langsung. Ada satu pengecualian cara kerjanya dijelaskan di http://www.postfix.org/ADDRESS_REWRITING_README.html#luser_relay

Solusi kasar lainnya adalah dengan menggunakan SQL (substr + concat) untuk menangani ini untuk Anda di virtual_alias_maps.

Sunting : Oh. Ada satu kemungkinan terakhir. Gunakan mekanisme pendelegasian kebijakan dan kembalilah ke REDIRECT localpart@other-domain.exampletempat Anda membutuhkannya dan DUNNOjika Anda tidak ingin menulis ulang.

Sunting 2 : Terinspirasi oleh Squidly (tetapi solusinya tidak bekerja!) Yang dapat Anda atur

virtual_alias_maps = pcre:/etc/postfix/forward_user.pcre, ...

dan dalam file itu dimasukkan

/^(.*)@adomain\.example/    $(1)@other-domain.example

(Hati-hati dengan titik keluar (\.) Di kolom pertama.) Secara pribadi saya lebih suka versi ini.


solusi ketiga berhasil untuk saya. namun saya harus menginstal postfix-pcrepaket (ubuntu 12.10)
scytale

1

Jenis tabel pcre tidak tersedia di sistem saya, jadi saya melakukan hal berikut:

  • Dalam /etc/postfix/main.cf:

    virtual_alias_maps = regexp:/etc/postfix/virtual
    
  • Dalam /etc/postfix/virtual:

    /^([^@]*)@olddomain/ $(1)@newdomain
    

0

Jika Anda menggunakan MySQL sebagai ujung penyimpanan, saya yakin Anda dapat menentukan tangkapan semua maju seperti ini:

Penerusan Tabel

| source       | destination   |
|==============|===============|
| @example.com | @yoursite.com |

Jika saya membaca dokumentasi dengan benar, itu berarti bahwa user1@example.com sekarang akan diteruskan ke user1@yoursite.com, dll.

Saya menemukan ini di tutorial howtoforge ini


0

Tidak mungkin secara langsung? Saya menemukan ini sangat sederhana dan langsung tanpa SQL, ekspresi reguler, atau mekanisme kebijakan.

Dalam main.cf:

virtual_alias_domains = alias-destination1.com alias-destination2.com
virtual_alias_maps = hash:/etc/postfix/virtual

Dalam /etc/postfix/virtual:

# I want @true-destination.com to have two incoming aliases
@alias-destination1.com @true-destination.com
@alias-destination2.com @true-destination.com

Mengirim e-mail percobaan dari server:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.myserver.com ESMTP Postfix
HELO smtp.myserver.com
250 smtp.myserver.com
MAIL FROM:<somebody@gmail.com>
RCPT TO:<anyuser@alias-destination1.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <4DC3723F.8010907@myserver.com>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <somebody@gmail.com>                                                                                                                   
To: anyuser@alias-destination1.com                                                                                                                                
Subject: Hello                                                                                                                                           
Just testing.                                                                                                                                            
.

Dan hasil aktual di mail.log (saya punya amavis di port 10025 berjalan):

Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: connect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: 6B47641AF2: client=localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/cleanup[3706]: 6B47641AF2: message-id=<4DC3723F.8010907@myserver.com>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<somebody@gmail.com>, size=1115, nrcpt=1 (queue active)
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: disconnect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a amavis-incoming[2159]: (02159-13) Passed CLEAN {RelayedInternal}, LOCAL [127.0.0.1]:42426 [127.0.0.1] <somebody@gmail.com> -> <anyuser@alias-destination1.com>, Queue-ID: 5C61F41AE5, Message-ID: <4DC3723F.8010907@myserver.com>, mail_id: hUbzH1PtXlzl, Hits: 2.605, size: 394, queued_as: 6B47641AF2, 1224 ms
Apr  6 22:39:43 smtp-a postfix/lmtp[3687]: 5C61F41AE5: to=<anyuser@alias-destination1.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=25, delays=24/0/0/1.2, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6B47641AF2)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 5C61F41AE5: removed

Garis kunci dipisahkan untuk penekanan:

Apr  6 22:39:43 smtp-a postfix/smtp[3684]: 6B47641AF2: to=<anyuser@true-destination.com>, orig_to=<anyuser@alias-destination1.com>, relay=10.0.0.245[10.0.0.245]:2525, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 705AA40459)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: removed

-1

Bergantung pada bagaimana Anda mengatur Postfix Anda, Anda mungkin dapat menggunakan alias untuk meneruskan semua email.

sunting

Anda juga dapat mengatur pengalihan yang akan melakukannya untuk Anda dengan mudah.

Di /etc/postfix/main.cf tambahkan ini:

recipient_bcc_maps = pcre:/etc/postfix/forward_bcc.pcre

Kemudian di /etc/postfix/forward_bcc.pcre tambahkan ini:

/^user@olddomain.com/ user@newdomain.com

Ini sedikit peretasan tetapi ini akan berhasil untuk meneruskan pengguna tertentu dari satu domain ke domain lain.

Anda juga mungkin ingin melihat halaman ini untuk mengetahui bagaimana melakukan penulisan ulang di dalam Postfix itu sendiri.


Bisakah Anda lebih spesifik? Saya tahu saya bisa menentukan @somedomain.comuntuk meneruskan semua email ke alamat tertentu , tetapi saya ingin tahu apakah saya bisa meneruskan ke penerima yang sama .
Abraham Vegh

di / etc / alias atur seperti ini. $ username: $username@newdomain.com
Squidly

@Squidly Hasil edit Anda bukan ekspresi reguler dan tidak akan berfungsi. Anda berkomentar tentang / etc / alias tidak akan berfungsi karena OP hanya memiliki pengguna virtual.
mailq

@mailq. Itu LANGSUNG di server SAYA sekarang. Ini berfungsi sempurna untuk beberapa arahan ulang. Dia juga tidak mengatakan ini HANYA pengguna virtual. Itu juga memberi opsi untuk dilihat.
Squidly
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.