11 คะแนน โดย GN⁺ 2024-11-20 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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 ความคิดเห็น

 
GN⁺ 2024-11-20
ความคิดเห็นจาก 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: $ smtp-sink -u nobody -R /tmp/smtp-sink -d "maildir/%Y-%m-%d/mail.%H.%M." 127.0.0.1:25 1024
  • การใช้งานทั่วไปของเครื่องมือประเภทนี้คือการทดสอบแอปพลิเคชันอื่นที่ส่งอีเมล อยากรู้ว่ามีการใช้งานแบบอื่นอีกหรือไม่