postfix - tüm e-postaları bir kullanıcıya nasıl yönlendirirsiniz, örneğin *@example.com → user@example.com


27

E-postam için posta kodu kullanıyorum. Belirli e-postaları yönlendirmek için / etc / aliases ve newaliases komutunu kullanabileceğimi biliyorum, örneğin root@example.com adresini user@example.com sitesine root: user/ etc / aliases yazıp yeniden çalıştırarak yeniden yönlendirebilirim newaliases. Bununla birlikte, eşdeğerini de yapmak istiyorum *: user, böylece example.com'a gönderilen tüm e-postalar user@example.com adresine gönderilir.

Bunu nasıl yaparım?

Yanıtlar:


19

luser_relay = user@example.comsenin içinde main.cfistediğin şey.

Kullanıcı kontrolünü devre dışı bırakmak ve tüm postaları kabul etmek için local_recipient_maps =seçeneği eklemeniz gerekir . belgeleme


1
Bunu main.cf dosyasına ekledim ve postfix'i yeniden başlattım. /Var/log/main.info dosyasında aşağıdaki hatayı aldım: <pre> 550 5.1.1 <myrandom@example.org>: Alıcı adresi reddedildi: Yerel alıcı tablosunda bilinmeyen kullanıcı; = <me@gmail.com> ile = <myrandom@example.org> </pre> arasında
Rory

Bu nedenle example.org yerel alıcı alan listenizde değil veya başka bir şey yanlış yapılandırılmış.
womble

7
Çalışmasını sağladım. Bahsettiğiniz luser_relay seçeneğinin yanı sıra, "local_recipient_maps =" seçeneğini de eklemeniz gerekir. Bu postfix dokümantasyon sayfası şunları açıklamaktadır: postfix.org/postconf.5.html#luser_relay
Rory

Bu yöntem Kime e-posta adresini koruyor mu? (sanal haritalar yeniden yazar ve orijinal Kime: adres kaybolur.)
user14645

1
@Sverre soruları sorulara yöneliktir, teğetsel olarak ilgili sorulara yedi yaşındaki cevaplarla ilgili yorumlar değildir.
womble

17

Aradığın şey sanal bir takma ad tablosu ve aşağıdakileri kullanarak yapılabilir ...

Öncelikle, / etc / postfix / virtual dosyasını düzenlemeniz veya oluşturmanız gerekmiyorsa oluşturmanız gerekir .

example.com   whatever
@example.com  user@example.com

Bu kaydedildikten sonra postmap /etc/postfix/virtual, indexed /etc/postfix/virtual.db Postfix'i oluşturabilmek için çalıştırmanız gerekecektir.

Daha sonra /etc/postfix/main.cf dosyasını düzenlemeniz ve aşağıdaki satırı uncommented olduğundan emin olmanız gerekir:

virtual_alias_maps = hash:/etc/postfix/virtual

Bu aslında postfix'in sanal takma ad tablosunu bilmesini ve kullanmasını sağlayacaktır.

luser_relaySeçeneği diğerlerinin belirttiği gibi kullanmanın sorunu , bunun yerel teslimat acentası tarafından bilinmeyen adreslere ait son adreslerin kullanıcısı olarak görülmesidir. Eğer postfix yalnızca bir alan için posta kullanıyorsa, bunun için kullanılabilir ancak diğer yapılandırma hatalarını maskeleyebilir ve birden fazla alan kullanılıyorsa beklenmeyen sonuçlara neden olabilir.

Söylemek zorunda olduğum bir uyarı, bu nitelikte bir joker karakter takma adı oluşturarak, var olmayacak adreslerin mesajlarını kabul etmek ve posta kutusunun var olmayanlar için spam ile hızlı bir şekilde doldurulma riskini taşımasını sağlamak için posta sisteminizi açıyor olmanızdır. posta kutuları.


8

Aslında oldukça basit. Yapmanız gereken tek şey main.cfdosyanıza böyle bir şey koymak :

virtual_alias_maps = regexp:/etc/postfix/virtual_alias

regexpBölüm hile yok. Ayrıca, /etc/postfix/virtual_aliasiçine şöyle bir şey koymak:

/^test/ you@yourdomain.com

Bu örnekte, 'test' ile başlayan tüm postaları hedef almalısınız. Harita / etc / postfix / virtual_alias yazmayı ve postfix'i yeniden yüklemeyi unutmayın.


6

Yukarıda benim için en kolay çalışan bir cevabı / yorumu birleştirmek için (Bir birincil alanım var):
Aşağıdakileri ekleyin /etc/postfix/main.cf:

luser_relay = user@domain.com (or local system user)
local_recipient_maps =

( local_recipient_maps =değeri ayarlanmamış)

Yerel bir kullanıcı linux hesabı kullanıyorum ve aynı zamanda / etc / aliases için aynı kullanıcıyı ekledim, böylece kullanıcı tüm postayı root, postmaster, vb.

Aynı adresi sizin adınıza da birleştirebilir virtual_alias_mapsve bu aynı birincil hesaptaki sanal alan adlarını işaretleyebilirsiniz.

Lütfen daha fazla bilgi için luser_relay'e danışın .


3

Etki alanım için bir yakalama adresi kullanmak istiyorsanız, /etc/aliasesaşağıdaki gibi bir regex ile birlikte kullanabilirsiniz :

Gelen /etc/postfix/main.cfeklenti
alias_maps = hash:/etc/aliases, regexp:/etc/postfix/catch-all-local.regexp

Gelen /etc/postfix/catch-all-local.regexpeklenti
!/^owner-/ your-catch-all-user

Bu hile yapmalı. Benim için çalıştı ve paralel olarak ayarlanan virtual_alias_maps ile çalışır.


0

Tam olarak bu amaç için kullanılabilen Postfix'de daha az bilinen bir statik arama tablosu türü vardır:

alias_database = static:user@example.com
alias_maps = static:user@example.com

User@example.com Bu sistem için yerel değilse, ayrıca muhtemelen ile biten satırları değiştirerek bütün dönen iletileri atmak isterdim bounceile discardde master.cfposta döngüler önlemek için.


-4

Killjoy olmaktan nefret ediyorum, ama senin sorunun Postfix kullanıyor olman. Postfix kesinlikle bu alıştırmayı çok zorlaştırıyor. Biliyorum: Birkaç yıl önce yapmam gerekiyordu ve düzeltmek için günler ve günler sürdü. luserSeçenek doğru olanıdır, ama çok doğru almak için diğer şeyler vardır. (Ve seçeneğin adı bile Postfix'in yazarlarının bunu gerçekten desteklemek istemediğini gösteriyor.)

Courier'e geçmenizi öneririm. Courier, bu "hepsini yakala" yöntemini, mevcut takma adını genişletme biçiminden dolayı çok daha mantıklı bir şekilde destekliyor.


1
Postfix hiç zorlaştırmıyor. Sanal takma adlar Postfix'de yakalama yapmanın standart yoludur ve çok kolaydır. Bununla birlikte, kendi kişisel alan adınız için bir oyuncak posta sunucusundan başka hiçbir şeyde, yakalamalar çok kötü bir fikirdir.
Rob Chanter
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.