Postfix'ten tüm giden e-postaları test için tek bir adrese nasıl yönlendirebilirim?


13

Bazı e-posta bildirimleri gönderen web tabanlı bir uygulama için test sunucusu kuruyorum.

Bazen testler gerçek müşteri verileriyle yapılır ve bu nedenle test ederken sunucunun gerçek müşterilerimize e-posta gönderemediğini garanti etmem gerekir.

Ne istiyorum postfix yapılandırmak, böylece giden herhangi bir e-posta alır ve gerçek hedefe teslim yerine, tek bir e-posta adresine yönlendirir.

Ubuntu 9.10 sunucusunu çalıştırıyorum.

Şimdiden teşekkür ederim

Yanıtlar:


19

Yakalanan tüm postaları almak için yerel bir kullanıcı ayarlayın:

adduser mailtrap

Main.cf dosyasına eklemeniz gerekir:

transport_maps = hash:/etc/postfix/transport
luser_relay = mailtrap

Sonra orada bununla / etc / postfix / transport oluşturun:

localhost :
your.hostname.example.com:
* local:mailtrap

Sonra çalıştırmayı kaydedin: postmap /etc/postfix/transportsonunda postfix'i yeniden başlatıninvoke-rc.d postfix restart

Tüm yerel e-postalar normal şekilde ve harici e-postalar yerel mailtraphesaba teslim edilir .


Tam da aradığım şey bu ... teşekkür ederim!
thatjuan

3
I benim için ama sonra İşleri eklendi luser_relay = xxxxxiçinde main.cf. Bu olmadan e-postalar geri döner.
Alex R

1
Ubuntu kullanırken, Postfix'i ile de yeniden başlatabilirsiniz sudo service postfix restart. Yukarıda belirtilen main.cf dosyanızın konumu /etc/postfix/main.cf. Postfix'i ilk kez kurarken ve kurarken, Local onlykurulum seçeneğini kullanabilirsiniz .
mtnorthrop

MAC üzerinde koşmalı postmap hash:/etc/postfix/transportve sudo postfix stop,sudo postfix start
Bang Dao

bu harika. bir iletinin birden çok alıcısı olduğunda yinelenenleri nasıl kaldıracağını bilen var mı?
graywh

10

Daha iyi bir sanal takma ad dosyası oluşturmaktır:

/Etc/postfix/main.cf dosyasında:

virtual_alias_maps = pcre:/etc/postfix/virtual

/ Etc / postfix / virtual içinde:

/.*@.*/ root

rootGiden tüm e-postaları almak istediğiniz kullanıcı ile değiştirebilirsiniz . Yerel postanın normal olarak teslim edilmesini istiyorsanız (yeniden yönlendirme olmadan) bu desen değiştirilebilir:

/.*@(?!hostname\.localdomain$).*/ root

Orijinal fikir burada bulundu: Postfix geliştirme sunucusu - tüm giden postalara müdahale et


2
sudo apt-get install postfix-pcreSürprizlerden kaçınmak için önceden yapmanız gerekebileceğini unutmayın .
mirabilos

benim için çok iyi çalışıyor!
michael-mammut

hatası "Sanal takma ad tablosunda kullanıcı bilinmiyor"
Alex R

5

Postfix, smtp-sink adı verilen bir şey sağlar. Varsayılan olarak, aldığı tüm e-postaları karartır. Daha sonraki sürümler, dosyalarda e-postayı yakalamak için de yapılandırılabilir.

Bu, teknik olarak postfix'i kullanmaz (ancak postfix tarafından sağlanan bir yardımcı programdır). Ayrıca her e-postayı teknik olarak tek bir e-posta adresine yönlendirmez. Ancak 25 numaralı bağlantı noktasındaki tüm trafiği yakalar ve bunu ayrıştırılabilen bir dosyaya atar.


Bir kişi smtp-sink'i nasıl çağırır? Çevrimiçi bulduğum bir sayfa, normal bir program gibi görünmesini sağladı, ancak postfix ile geldiyse sistemime yüklenmedi (OSX 10.6). Bu hizmeti nasıl çalıştırabilirim?
Chris Bloom

Smtp-sink için bir manpage var. Ancak bazı parametreler burada da açıklanmaktadır: blog.malowa.de/2011/04/postfix-as-spam-trap-server.html
mailq
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.