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.