วิธีเปลี่ยนเส้นทางอีเมลขาออกทั้งหมดจาก postfix ไปยังที่อยู่เดียวเพื่อทำการทดสอบ


13

ฉันกำลังตั้งค่าเซิร์ฟเวอร์ทดสอบสำหรับแอปพลิเคชันบนเว็บที่ส่งการแจ้งเตือนทางอีเมล

บางครั้งการทดสอบจะดำเนินการกับข้อมูลลูกค้าจริงและด้วยเหตุนี้ฉันจึงต้องรับประกันว่าเซิร์ฟเวอร์ไม่สามารถส่งอีเมลไปยังลูกค้าจริงของเราในขณะที่เรากำลังทดสอบ

สิ่งที่ฉันต้องการคือการกำหนดค่า postfix เพื่อให้รับอีเมลขาออกและเปลี่ยนเส้นทางไปยังที่อยู่อีเมลเดียวแทนที่จะส่งไปยังปลายทางจริง

ฉันใช้เซิร์ฟเวอร์ Ubuntu 9.10

ขอบคุณล่วงหน้า

คำตอบ:


19

ตั้งค่าผู้ใช้โลคัลเพื่อรับเมลที่ติดอยู่ทั้งหมด:

adduser mailtrap

คุณต้องเพิ่ม main.cf:

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

จากนั้นสร้าง / etc / postfix / transport ด้วยสิ่งนี้ในที่นั่น:

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

บันทึกการทำงานแล้ว: postmap /etc/postfix/transportในที่สุดก็เริ่ม postfix ใหม่invoke-rc.d postfix restart

อีเมลท้องถิ่นทั้งหมดจะจัดส่งตามปกติและอีเมลภายนอกจะถูกส่งไปยังmailtrapบัญชีท้องถิ่น


นี่คือสิ่งที่ฉันกำลังมองหา ... ขอบคุณ!
thatjuan

3
การทำงานสำหรับฉัน แต่หลังจากที่ฉันเพิ่มในluser_relay = xxxxx main.cfหากไม่มีสิ่งนี้อีเมลจะเด้ง
Alex R

1
sudo service postfix restartเมื่อใช้อูบุนตูคุณยังสามารถเริ่มต้นใหม่กับ Postfix สถานที่ตั้งของไฟล์ main.cf /etc/postfix/main.cfของคุณดังกล่าวข้างต้นคือ เมื่อติดตั้งและตั้งค่า Postfix เป็นครั้งแรกคุณสามารถใช้Local onlyตัวเลือกการติดตั้ง
mtnorthrop

บน Mac คุณควรใช้postmap hash:/etc/postfix/transportและsudo postfix stop,sudo postfix start
บางเชียงดาว

มันเยี่ยมมาก ไม่มีใครรู้วิธีกำจัดรายการที่ซ้ำกันเมื่อข้อความมีผู้รับหลายคน?
graywh

10

ดีกว่าคือการสร้างไฟล์นามแฝงเสมือน:

ใน /etc/postfix/main.cf:

virtual_alias_maps = pcre:/etc/postfix/virtual

ใน / etc / postfix / virtual:

/.*@.*/ root

คุณสามารถแทนที่rootด้วยผู้ใช้ใดก็ได้ที่คุณต้องการรับอีเมลขาออกทั้งหมด รูปแบบนี้สามารถปรับแต่งได้หากคุณต้องการให้ส่งเมลภายในเครื่องตามปกติ (โดยไม่เปลี่ยนเส้นทาง):

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

พบแนวคิดดั้งเดิมที่นี่: เซิร์ฟเวอร์พัฒนา Postfix - ดักจดหมายที่ส่งออกทั้งหมด


2
โปรดทราบว่าคุณอาจจำเป็นต้องทำsudo apt-get install postfix-pcreล่วงหน้าเพื่อหลีกเลี่ยง ... เซอร์ไพรส์
mirabilos

ทำงานได้ดีมากสำหรับฉัน!
michael-mammut

ข้อผิดพลาด "ผู้ใช้ที่ไม่รู้จักในตารางนามแฝงเสมือน"
Alex R

5

Postfix จัดเตรียมสิ่งที่เรียกว่า smtp-sink โดยค่าเริ่มต้นมันจะ blackholes อีเมลทั้งหมดที่ได้รับ รุ่นที่ใหม่กว่าสามารถกำหนดค่าให้จับอีเมลในไฟล์ได้

เทคนิคนี้ไม่ได้ใช้ postfix (แต่เป็นอรรถประโยชน์ที่มาจาก postfix) แต่ก็ไม่ได้เปลี่ยนเส้นทางอีเมลแต่ละอันไปยังที่อยู่อีเมลเดียว แต่มันจับปริมาณการใช้งานทั้งหมดบนพอร์ต 25 และดัมพ์ไปยังไฟล์ที่สามารถวิเคราะห์คำได้


วิธีใดเรียกใช้ smtp-sink manpage เดียวที่ฉันพบออนไลน์ทำให้ดูเหมือนว่าเป็นโปรแกรมปกติ แต่ถ้ามันมาพร้อมกับ postfix ก็ไม่ได้ติดตั้งในระบบของฉัน (OSX 10.6) ฉันจะใช้บริการนี้ได้อย่างไร
Chris Bloom

มี manpage สำหรับ smtp-sink แต่มีการอธิบายพารามิเตอร์บางอย่างไว้ที่นี่ด้วยเช่นกัน: blog.malowa.de/2011/04/postfix-as-spam-trap-server.html
mailq
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.