Listmonk พร้อมการส่งต่ออีเมลเพื่อการส่งจดหมายข่าวที่ปลอดภัย

คู่มือนี้ให้คำแนะนำทีละขั้นตอนสำหรับนักพัฒนาในการตั้งค่า ลิสต์มองค์ ซึ่งเป็นโปรแกรมจัดการจดหมายข่าวและรายชื่อผู้รับจดหมายแบบโอเพนซอร์สอันทรงพลัง เพื่อใช้ ส่งต่ออีเมล์ เป็นผู้ให้บริการ SMTP การผสมผสานนี้ช่วยให้คุณจัดการแคมเปญได้อย่างมีประสิทธิภาพ พร้อมรับประกันความปลอดภัย ความเป็นส่วนตัว และความน่าเชื่อถือในการส่งอีเมล

  • Listmonk: จัดการการจัดการสมาชิก การจัดระเบียบรายชื่อ การสร้างแคมเปญ และการติดตามประสิทธิภาพ
  • ส่งต่ออีเมล: ทำหน้าที่เป็นเซิร์ฟเวอร์ SMTP ที่ปลอดภัย จัดการการส่งอีเมลจริงด้วยฟีเจอร์ความปลอดภัยในตัว เช่น SPF, DKIM, DMARC และการเข้ารหัส TLS

ด้วยการบูรณาการทั้งสองสิ่งนี้เข้าด้วยกัน คุณจะยังคงควบคุมข้อมูลและโครงสร้างพื้นฐานของคุณได้อย่างสมบูรณ์ พร้อมทั้งใช้ประโยชน์จากระบบส่งมอบอันแข็งแกร่งของ Forward Email

  • โอเพนซอร์ส: ทั้ง Listmonk และหลักการเบื้องหลัง Forward Email เน้นความโปร่งใสและการควบคุม คุณเป็นเจ้าของ Listmonk เอง และเป็นเจ้าของข้อมูลของคุณเอง
  • เน้นความเป็นส่วนตัว: Forward Email สร้างขึ้นโดยยึดหลักความเป็นส่วนตัวเป็นสำคัญ ลดการเก็บรักษาข้อมูล และเน้นการส่งข้อมูลที่ปลอดภัย
  • คุ้มค่า: Listmonk ให้บริการฟรี และ Forward Email นำเสนอระดับบริการฟรีที่หลากหลายและแพ็กเกจแบบชำระเงินที่เข้าถึงได้ ทำให้เป็นโซลูชันที่ประหยัดงบประมาณ
  • ความสามารถในการปรับขนาด: Listmonk มีประสิทธิภาพสูง และโครงสร้างพื้นฐานของ Forward Email ออกแบบมาเพื่อการจัดส่งที่เชื่อถือได้ในวงกว้าง
  • เป็นมิตรกับนักพัฒนา: Listmonk นำเสนอ API ที่แข็งแกร่ง และ Forward Email นำเสนอการผสานรวม SMTP และเว็บฮุกที่ใช้งานง่าย

ก่อนที่คุณจะเริ่มต้น ให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:

  • เซิร์ฟเวอร์ส่วนตัวเสมือน (VPS) ที่ใช้งาน Linux เวอร์ชันล่าสุด (แนะนำ Ubuntu 20.04 ขึ้นไป) ที่มี CPU อย่างน้อย 1 ตัวและ RAM 1GB (แนะนำ 2GB)
  • ต้องการผู้ให้บริการใช่ไหม? ลองดู รายชื่อ VPS ที่แนะนำ
  • ชื่อโดเมนที่คุณควบคุม (ต้องมีสิทธิ์เข้าถึง DNS)
  • บัญชีที่ใช้งานอยู่ซึ่งมี ส่งต่ออีเมล์
  • สิทธิ์การเข้าถึง VPS ของคุณระดับ Root หรือ sudo
  • มีความรู้พื้นฐานเกี่ยวกับการใช้งานบรรทัดคำสั่งของ Linux

ขั้นตอนเหล่านี้จะแนะนำคุณในการติดตั้ง Listmonk โดยใช้ Docker และ Docker Compose บน VPS ของคุณ

1. อัปเดตเซิร์ฟเวอร์ของคุณ

ตรวจสอบให้แน่ใจว่ารายการแพ็กเกจระบบและแพ็กเกจที่ติดตั้งของคุณเป็นปัจจุบัน

sudo apt update && sudo apt upgrade -y

2. ติดตั้ง Dependencies

ติดตั้ง Docker, Docker Compose และ UFW (ไฟร์วอลล์ที่ไม่ซับซ้อน)

sudo apt install -y docker.io docker-compose ufw

3. ดาวน์โหลดการกำหนดค่า Listmonk

สร้างไดเร็กทอรีสำหรับ Listmonk และดาวน์โหลดไฟล์ docker-compose.yml อย่างเป็นทางการ

mkdir listmonk && cd listmonk
curl -Lo docker-compose.yml https://raw.githubusercontent.com/knadh/listmonk/master/docker-compose.yml

ไฟล์นี้กำหนดคอนเทนเนอร์แอปพลิเคชัน Listmonk และคอนเทนเนอร์ฐานข้อมูล PostgreSQL ที่จำเป็น

4. กำหนดค่าไฟร์วอลล์ (UFW)

อนุญาตให้การรับส่งข้อมูลที่จำเป็น (SSH, HTTP, HTTPS) ผ่านไฟร์วอลล์ได้ หาก SSH ของคุณทำงานบนพอร์ตที่ไม่ได้มาตรฐาน ให้ปรับตามความเหมาะสม

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

ยืนยันการเปิดใช้งานไฟร์วอลล์เมื่อได้รับแจ้ง

5. กำหนดค่าการเข้าถึง HTTPS

การรัน Listmonk ผ่าน HTTPS เป็นสิ่งสำคัญอย่างยิ่งต่อความปลอดภัย คุณมีสองตัวเลือกหลัก:

หาก DNS ของโดเมนของคุณได้รับการจัดการโดย Cloudflare คุณสามารถใช้ประโยชน์จากคุณสมบัติพร็อกซีของพวกเขาสำหรับ HTTPS ที่ง่ายดาย

  1. Point DNS: สร้างระเบียน A ใน Cloudflare สำหรับโดเมนย่อย Listmonk ของคุณ (เช่น listmonk.yourdomain.com) โดยชี้ไปยังที่อยู่ IP VPS ของคุณ ตรวจสอบให้แน่ใจว่า สถานะพร็อกซี ถูกตั้งค่าเป็น Proxied (เมฆสีส้ม)
  2. แก้ไข Docker Compose: แก้ไขไฟล์ docker-compose.yml ที่คุณดาวน์โหลด:
   sed -i 's/9000:9000/80:9000/' docker-compose.yml

ซึ่งจะทำให้ Listmonk สามารถเข้าถึงได้ภายในพอร์ต 80 ซึ่ง Cloudflare สามารถทำพร็อกซีและรักษาความปลอดภัยด้วย HTTPS ได้

ตัวเลือก B: การใช้พร็อกซีแบบย้อนกลับ (Nginx, Caddy เป็นต้น)

อีกวิธีหนึ่งคือคุณสามารถตั้งค่าพร็อกซีแบบย้อนกลับ เช่น Nginx หรือ Caddy บน VPS ของคุณเพื่อจัดการการยุติ HTTPS และคำขอพร็อกซีไปยัง Listmonk (ทำงานบนพอร์ต 9000 ตามค่าเริ่มต้น)

  • คงค่าเริ่มต้น ports: - "127.0.0.1:9000:9000" ไว้ใน docker-compose.yml เพื่อให้แน่ใจว่า Listmonk สามารถเข้าถึงได้เฉพาะในเครื่องเท่านั้น
  • กำหนดค่าพร็อกซีย้อนกลับที่คุณเลือกให้รับฟังบนพอร์ต 80 และ 443 จัดการการรับใบรับรอง SSL (เช่น ผ่าน Let's Encrypt) และส่งต่อการรับส่งข้อมูลไปยัง http://127.0.0.1:9000
  • การตั้งค่าพร็อกซีย้อนกลับโดยละเอียดอยู่นอกเหนือขอบเขตของคู่มือนี้ แต่มีบทช่วยสอนมากมายให้อ่านออนไลน์

6. เริ่ม Listmonk

นำทางกลับไปยังไดเร็กทอรี listmonk ของคุณ (หากคุณยังไม่ได้อยู่ที่นั่น) และเริ่มคอนเทนเนอร์ในโหมดแยก

cd ~/listmonk # Or the directory where you saved docker-compose.yml
docker compose up -d

Docker จะดาวน์โหลดอิมเมจที่จำเป็นและเริ่มต้นแอปพลิเคชัน Listmonk และคอนเทนเนอร์ฐานข้อมูล ครั้งแรกอาจใช้เวลาหนึ่งหรือสองนาที

เข้าถึง Listmonk: ตอนนี้คุณสามารถเข้าถึงอินเทอร์เฟซเว็บ Listmonk ได้ผ่านโดเมนที่คุณกำหนดค่า (เช่น https://listmonk.yourdomain.com)

7. กำหนดค่าการส่งต่ออีเมล SMTP ใน Listmonk

ขั้นตอนต่อไป กำหนดค่า Listmonk เพื่อส่งอีเมลโดยใช้บัญชี Forward Email ของคุณ

  1. เปิดใช้งาน SMTP ใน Forward Email: ตรวจสอบให้แน่ใจว่าคุณได้สร้างข้อมูลประจำตัว SMTP ไว้ในแดชบอร์ดบัญชี Forward Email ของคุณแล้ว ทำตามขั้นตอน คู่มือการส่งต่ออีเมลเพื่อส่งอีเมลด้วยโดเมนที่กำหนดเองผ่าน SMTP หากยังไม่ได้ทำ
  2. กำหนดค่า Listmonk: เข้าสู่ระบบแผงควบคุมผู้ดูแลระบบ Listmonk ของคุณ
  • ไปที่ การตั้งค่า -> SMTP

  • Listmonk รองรับการส่งต่ออีเมลในตัว เลือก ส่งต่ออีเมล จากรายชื่อผู้ให้บริการ หรือป้อนรายละเอียดต่อไปนี้ด้วยตนเอง:

การตั้งค่า ค่า
เจ้าภาพ smtp.forwardemail.net
ท่าเรือ 465
โปรโตคอลการตรวจสอบสิทธิ์ LOGIN
ชื่อผู้ใช้ อีเมลส่งต่อของคุณ ชื่อผู้ใช้ SMTP
รหัสผ่าน อีเมลส่งต่อของคุณ รหัสผ่าน SMTP
TLS SSL/TLS
จากอีเมล์ ที่อยู่ From ที่คุณต้องการ (เช่น newsletter@yourdomain.com) ตรวจสอบให้แน่ใจว่าโดเมนนี้ได้รับการกำหนดค่าในการส่งต่ออีเมล
  • สำคัญ: ควรใช้พอร์ต 465 ร่วมกับ SSL/TLS เสมอสำหรับการเชื่อมต่อที่ปลอดภัยด้วยการส่งต่ออีเมล ห้ามใช้ STARTTLS (พอร์ต 587)

  • คลิก บันทึก

  1. ส่งอีเมลทดสอบ: ใช้ปุ่ม "ส่งอีเมลทดสอบ" ในหน้าการตั้งค่า SMTP ป้อนที่อยู่อีเมลผู้รับที่คุณสามารถเข้าถึงได้ แล้วคลิก ส่ง ตรวจสอบว่าอีเมลมาถึงกล่องจดหมายของผู้รับแล้ว

8. กำหนดค่าการประมวลผลการตีกลับ

การประมวลผลอีเมลตีกลับช่วยให้ Listmonk สามารถจัดการอีเมลที่ไม่สามารถส่งได้โดยอัตโนมัติ (เช่น เนื่องจากที่อยู่อีเมลไม่ถูกต้อง) อีเมลส่งต่อมีเว็บฮุกเพื่อแจ้งให้ Listmonk ทราบเกี่ยวกับการตีกลับ

การตั้งค่าการส่งต่ออีเมล

  1. เข้าสู่ระบบ แดชบอร์ดการส่งต่ออีเมล ของคุณ
  2. ไปที่ โดเมน เลือกโดเมนที่คุณกำลังใช้สำหรับส่ง และไปที่หน้า การตั้งค่า ของโดเมนนั้น
  3. เลื่อนลงไปที่ส่วน Bounce Webhook URL
  4. ป้อน URL ต่อไปนี้ โดยแทนที่ <your_listmonk_domain> ด้วยโดเมนหรือโดเมนย่อยจริงที่สามารถเข้าถึงอินสแตนซ์ Listmonk ของคุณได้:
   https://<your_listmonk_domain>/webhooks/service/forwardemail

ตัวอย่าง: https://listmonk.yourdomain.com/webhooks/service/forwardemail 5. เลื่อนลงไปอีกที่ส่วน Webhook Signature Payload Verification Key 6. คัดลอก คีย์ยืนยันที่สร้างขึ้น คุณจะต้องใช้คีย์นี้ใน Listmonk 7. บันทึกการเปลี่ยนแปลงในการตั้งค่าโดเมน Forward Email ของคุณ

การตั้งค่า Listmonk

  1. ในแผงควบคุมผู้ดูแลระบบ Listmonk ของคุณ ให้ไปที่ การตั้งค่า -> การตีกลับ
  2. เปิดใช้งาน เปิดใช้งานการประมวลผลการตีกลับ
  3. เปิดใช้งาน เปิดใช้งานเว็บฮุกสำหรับการตีกลับ
  4. เลื่อนลงไปที่ส่วน ผู้ให้บริการเว็บฮุก
  5. เปิดใช้งาน ส่งต่ออีเมล
  6. วาง คีย์ยืนยันเพย์โหลดลายเซ็นเว็บฮุก ที่คุณคัดลอกจากแดชบอร์ดการส่งต่ออีเมลลงในช่อง คีย์ส่งต่ออีเมล
  7. คลิก บันทึก ที่ด้านล่างของหน้า
  8. กำหนดค่าการประมวลผลการตีกลับเรียบร้อยแล้ว! เมื่ออีเมลส่งต่อตรวจพบการตีกลับสำหรับอีเมลที่ส่งโดย Listmonk ระบบจะแจ้งเตือนอินสแตนซ์ Listmonk ของคุณผ่านเว็บฮุก และ Listmonk จะทำเครื่องหมายผู้สมัครสมาชิกตามนั้น
  9. ทำตามขั้นตอนด้านล่างใน การทดสอบ เพื่อให้แน่ใจว่าทุกอย่างทำงาน

ต่อไปนี้เป็นภาพรวมโดยย่อของฟังก์ชันหลักของ Listmonk:

สร้างรายการส่งจดหมาย

  • ไปที่ รายการ ในแถบด้านข้าง
  • คลิก รายการใหม่
  • กรอกรายละเอียด (ชื่อ, ประเภท: สาธารณะ/ส่วนตัว, คำอธิบาย, แท็ก) และ บันทึก

เพิ่มสมาชิก

  • ไปที่ส่วน สมาชิก
  • คุณสามารถเพิ่มสมาชิกได้ดังนี้:
  • ด้วยตนเอง: คลิก สมาชิกใหม่
  • นำเข้า: คลิก นำเข้าสมาชิก เพื่ออัปโหลดไฟล์ CSV
  • API: ใช้ Listmonk API สำหรับการเพิ่มข้อมูลแบบโปรแกรม
  • กำหนดสมาชิกให้กับรายชื่ออย่างน้อยหนึ่งรายการในระหว่างการสร้างหรือนำเข้า
  • แนวทางปฏิบัติที่ดีที่สุด: ใช้กระบวนการเลือกรับแบบสองขั้นตอน (double opt-in) กำหนดค่านี้ได้ใน การตั้งค่า -> การเลือกรับและการสมัครรับข้อมูล

สร้างและส่งแคมเปญ

  • ไปที่ แคมเปญ -> แคมเปญใหม่
  • กรอกรายละเอียดแคมเปญ (ชื่อ, หัวข้อ, อีเมลต้นทาง, รายการที่จะส่งถึง)
  • เลือกประเภทเนื้อหา (ข้อความแบบ Rich Text/HTML, ข้อความธรรมดา, HTML แบบ Raw)
  • เขียนเนื้อหาอีเมล คุณสามารถใช้ตัวแปรเทมเพลต เช่น {{ .Subscriber.Email }} หรือ {{ .Subscriber.FirstName }}
  • ส่งอีเมลทดสอบก่อนเสมอ! ใช้ตัวเลือก "ส่งทดสอบ" เพื่อดูตัวอย่างอีเมลในกล่องจดหมาย
  • เมื่อตั้งค่าเรียบร้อยแล้ว คลิก เริ่มแคมเปญ เพื่อส่งทันทีหรือตั้งเวลาส่งในภายหลัง

  • การส่ง SMTP: ส่งอีเมลทดสอบเป็นประจำผ่านหน้าการตั้งค่า SMTP ของ Listmonk และทดสอบแคมเปญเพื่อให้แน่ใจว่าอีเมลถูกส่งอย่างถูกต้อง
  • การจัดการการตีกลับ: ส่งแคมเปญทดสอบไปยังที่อยู่อีเมลที่ไม่ถูกต้อง (เช่น bounce-test@yourdomain.com หากคุณไม่มีที่อยู่อีเมลจริงอยู่ในมือ แม้ว่าผลลัพธ์อาจแตกต่างกันไป) ตรวจสอบสถิติแคมเปญใน Listmonk หลังจากนั้นสักครู่ เพื่อดูว่ามีการตีกลับหรือไม่
  • ส่วนหัวอีเมล: ใช้เครื่องมือเช่น เครื่องทดสอบเมล หรือตรวจสอบส่วนหัวอีเมลด้วยตนเองเพื่อตรวจสอบว่า SPF, DKIM และ DMARC ผ่าน ซึ่งบ่งชี้ถึงการตั้งค่าที่ถูกต้องผ่านอีเมลส่งต่อ
  • บันทึกการส่งต่ออีเมล: ตรวจสอบบันทึกแดชบอร์ดการส่งต่ออีเมลของคุณ หากคุณสงสัยว่ามีปัญหาในการส่งที่มาจากเซิร์ฟเวอร์ SMTP

  • การสร้างเทมเพลต: Listmonk ใช้เอนจินการสร้างเทมเพลตของ Go ดูเอกสารประกอบสำหรับการปรับแต่งขั้นสูงได้ที่ {{ .Subscriber.Attribs.your_custom_field }}
  • API: Listmonk มี REST API ที่ครอบคลุมสำหรับการจัดการรายการ สมาชิก แคมเปญ เทมเพลต และอื่นๆ ดูลิงก์เอกสารประกอบ API ได้ในส่วนท้ายของอินสแตนซ์ Listmonk ของคุณ
  • ฟิลด์ที่กำหนดเอง: กำหนดฟิลด์สมาชิกที่กำหนดเองภายใต้ การตั้งค่า -> ฟิลด์สมาชิก เพื่อเก็บข้อมูลเพิ่มเติม
  • เว็บฮุก: นอกจากการตีกลับแล้ว Listmonk ยังสามารถส่งเว็บฮุกสำหรับเหตุการณ์อื่นๆ (เช่น การสมัครรับข้อมูล) ซึ่งทำให้สามารถผสานรวมกับระบบอื่นๆ ได้

การผสานรวมพลังการโฮสต์ด้วยตนเองของ Listmonk เข้ากับระบบส่งต่ออีเมลที่ปลอดภัยและเคารพความเป็นส่วนตัว จะช่วยให้คุณสร้างแพลตฟอร์มการตลาดทางอีเมลที่แข็งแกร่งและมีจริยธรรม คุณจะยังคงเป็นเจ้าของข้อมูลกลุ่มเป้าหมายของคุณอย่างเต็มที่ พร้อมรับประโยชน์จากความสามารถในการส่งสูงและระบบรักษาความปลอดภัยอัตโนมัติ

การตั้งค่านี้ให้ทางเลือกที่ปรับขนาดได้ คุ้มต้นทุน และเป็นมิตรต่อนักพัฒนาสำหรับบริการอีเมลที่เป็นกรรมสิทธิ์ ซึ่งสอดคล้องอย่างสมบูรณ์แบบกับจริยธรรมของซอฟต์แวร์โอเพ่นซอร์สและความเป็นส่วนตัวของผู้ใช้

ส่งความสุข! 🚀