- MailCatcher เป็นเครื่องมือที่รันเซิร์ฟเวอร์ SMTP แบบเรียบง่าย และแสดงอีเมลที่รับมาแล้วผ่านเว็บอินเทอร์เฟซ
- สามารถตั้งค่าให้ส่งอีเมลไปที่ smtp://127.0.0.1:1025 และตรวจสอบอีเมลที่ได้รับได้ที่ http://127.0.0.1:1080
- ฟีเจอร์หลัก
- รับและจัดเก็บอีเมลทั้งหมด พร้อมแสดงเวอร์ชัน HTML, ข้อความล้วน และซอร์ส
- เขียน HTML ใหม่เพื่อให้สามารถเปิดรูปภาพแบบฝังและลิงก์ในหน้าต่างใหม่ได้
- แสดงรายการไฟล์แนบและรองรับการดาวน์โหลดแยกแต่ละไฟล์
- ดาวน์โหลดอีเมลต้นฉบับเพื่อเปิดดูในเมลไคลเอนต์หลักได้
- เปลี่ยนค่า IP และพอร์ตเริ่มต้นของ SMTP/HTTP ได้ผ่านตัวเลือกบรรทัดคำสั่ง
- ในเบราว์เซอร์ที่รองรับ WebSockets อีเมลจะปรากฏทันที มิฉะนั้นจะอัปเดตทุก 30 วินาที
- รันเป็นดีมอนในเบื้องหลังได้ และรันแบบ foreground ได้เช่นกัน
- มี
catchmail ซึ่งเป็นคำสั่งลักษณะเดียวกับ sendmail เพื่อให้ใช้งานจาก PHP ได้สะดวก
- รองรับการนำทางระหว่างข้อความด้วยคีย์บอร์ด
- การติดตั้งและวิธีใช้งาน
- ติดตั้งได้ด้วยคำสั่ง
gem install mailcatcher และรันด้วยคำสั่ง mailcatcher
- ส่งอีเมลไปที่ smtp://127.0.0.1:1025 และตรวจสอบได้ที่ http://127.0.0.1:1080
- ดูตัวเลือกบรรทัดคำสั่งได้ด้วย
mailcatcher --help
- Bundler และ RVM
- แนะนำว่าอย่าเพิ่ม MailCatcher ลงใน Gemfile แต่ให้ระบุวิธีใช้งานไว้ใน README แทน
- หากใช้ RVM แนะนำให้ติดตั้งใน gemset เฉพาะเพื่อหลีกเลี่ยงการชนกันของ gem
- การตั้งค่า Rails และ PHP
- ใน Rails สามารถใช้งานได้โดยเพิ่มการตั้งค่า SMTP ใน
environments/development.rb
- ใน PHP สามารถใช้งานได้โดยตั้งค่า
sendmail_path ใน php.ini หรือในการตั้งค่า Apache
- การตั้งค่า Django
- ใน Django สามารถใช้งานได้โดยเพิ่มการตั้งค่าอีเมลใน
settings.py
- API
- สามารถดาวน์โหลดรายการข้อความในรูปแบบ JSON ได้ผ่านสคีมา URL แบบ RESTful
- ข้อควรระวัง
- ความสามารถในการจัดการอีเมลเป็นแบบพื้นฐาน และสามารถแก้ไขเพิ่มเติมได้ตามต้องการ
- ยังไม่รองรับการเข้ารหัส UTF-8 ได้อย่างสมบูรณ์ จึงอาจจำเป็นต้องใช้ไลบรารีอีเมลที่เหมาะสม
- แผนในอนาคต
- เพิ่มฟังก์ชันส่งอีเมลตามคำขอ
- ทดสอบความเข้ากันได้กับแนวทางการออกแบบและเมทริกซ์การรองรับ CSS ของ CampaignMonitor
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เครื่องมือนี้มีประโยชน์ แต่หยุดการบำรุงรักษาแล้ว MailHog ก็เช่นกัน ทางเลือกสมัยใหม่คือ MailPit, MailCrab, smtp4dev
ผู้ดูแลปัจจุบันไม่ได้ทำงานมากนัก เพราะเครื่องมือนี้ถือว่าเสร็จสมบูรณ์แล้ว ยังมีจุดที่ปรับปรุงได้อีกมาก แต่ไม่ได้ยกระดับฟีเจอร์อย่างมีนัยสำคัญ หากมีปัญหาก็จะทำการแก้ไข
Mailpit เขียนด้วย Go รันเป็น static binary เดี่ยว และใช้ทรัพยากรต่ำมาก ยังได้รับการบำรุงรักษาอย่างต่อเนื่อง
กำลังมองหาเครื่องมือคล้ายกันสำหรับดักจับข้อความ SMS ในสภาพแวดล้อมการพัฒนาแบบโลคัล บริษัทใช้ Mailtrap เป็นเครื่องมือพรีวิวอีเมลอยู่แล้ว และกำลังมองหาเครื่องมือคล้ายกันสำหรับข้อความ SMS ที่ส่งผ่าน Twilio เคยมีโปรเจกต์ Twilio Dev Phone แต่ปัจจุบันหยุดการบำรุงรักษาแล้ว
เครื่องมือนี้มีไว้เพื่อการพัฒนาและอยู่ในสถานะที่สมบูรณ์แล้ว มีความเคลื่อนไหวบน Git ภายใน 1 ปีที่ผ่านมา หากฟีเจอร์บางอย่างสำคัญ ก็อาจส่ง pull request หรือพิจารณาบริจาคเพื่อการพัฒนาได้
เพิ่งเริ่มใช้ smtp4dev ไม่นานนี้ มองว่าปัญหาแนว "mailtrap" สำหรับการพัฒนาแบบโลคัลเป็นเรื่องที่มีคำตอบอยู่แล้ว ใช้เวลา 15 นาทีและโค้ด 10 บรรทัดในการเพิ่มลงในไฟล์ Docker-compose และมันทำงานได้ดีมาก การตั้งค่าบริการผ่าน Docker/Podman ทำได้ง่ายมาก
กำลังใช้ Mailcatcher ในการพัฒนาแอป Rails และมันใช้งานง่ายมาก ไม่คิดว่าต้องการอย่างอื่นอีกแล้ว ขอบคุณ @sj26 และผู้ร่วมพัฒนา
เคยใช้ MailCatcher แต่พอเปลี่ยนไปใช้เครื่อง Arm ก็เริ่มมีปัญหา ตอนนี้ใช้ Mailpit อยู่และการตั้งค่าซับซ้อนกว่า หาก MailCatcher แก้ปัญหา Arm ได้แล้ว ก็อาจย้ายกลับไปใช้อีกครั้ง
ใช้ smtp-sink มานาน แต่ทีมชอบเครื่องมือแบบ GUI มากกว่า CLI เลยมาเจอ Mailcatcher ซึ่งเสถียรและทำงานได้ดี
$ smtp-sink -u nobody -R /tmp/smtp-sink -d "maildir/%Y-%m-%d/mail.%H.%M." 127.0.0.1:25 1024การใช้งานทั่วไปของเครื่องมือประเภทนี้คือการทดสอบแอปพลิเคชันอื่นที่ส่งอีเมล อยากรู้ว่ามีการใช้งานแบบอื่นอีกหรือไม่