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.

Abraham Vegh
sumber

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 [email protected]tempat 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.

mailq
sumber
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
    
Richard Hansen
sumber
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 [email protected] sekarang akan diteruskan ke [email protected], dll.

Saya menemukan ini di tutorial howtoforge ini

HectorMalot
sumber
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:<[email protected]>
RCPT TO:<[email protected]>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <[email protected]>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <[email protected]>                                                                                                                   
To: [email protected]                                                                                                                                
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=<[email protected]>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<[email protected]>, 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] <[email protected]> -> <[email protected]>, Queue-ID: 5C61F41AE5, Message-ID: <[email protected]>, 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=<[email protected]>, 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=<[email protected]>, orig_to=<[email protected]>, 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
BaseZen
sumber
-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:

/^[email protected]/ [email protected]

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.

Squidly
sumber
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: [email protected]
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