Email — AI Sends and Receives Mail
Email — AI Sends and Receives Mail — easy-to-understand guide based on official docs
อีเมล — AI ส่งและรับเมล
ลองนึกภาพดู: คุณส่งอีเมลถึง AI agent ของคุณ แล้วมันตอบกลับมา — ในเธรดเดียวกันเลย ไม่ต้องมีแอปแชทสวยๆ ไม่ต้องมี bot API ไม่ต้องติดตั้งซอฟต์แวร์เพิ่ม แค่ใช้อีเมลธรรมดาๆ เท่านั้น นี่คือสิ่งที่ Email gateway adapter ทำเพื่อ Hermes
ในโพสต์นี้ เราจะมาดูวิธีติดตั้ง วิธีทำงานเบื้องหลัง และวิธีรักษาความปลอดภัยให้อินบ็อกซ์ของคุณ
ทำไมต้องอีเมล?
อีเมลเป็นสากล ทุกคนมีที่อยู่อีเมล การเชื่อม Hermes เข้ากับกล่องจดหมายของคุณผ่าน IMAP มาตรฐาน (สำหรับรับ) และ SMTP (สำหรับส่ง) คุณจะได้ AI แบบสนทนาที่ทำงานกับ Gmail, Outlook, Yahoo, Fastmail หรือผู้ให้บริการใดก็ได้ที่รองรับโปรโตคอลเหล่านี้
และจุดเด่นที่สุดคือ: ไม่มี dependencies ภายนอกเลย adapter ใช้โมดูล imaplib, smtplib และ email ที่มาพร้อมกับ Python ไม่ต้องติดตั้งแพ็กเกจเพิ่ม ไม่ต้องใช้บริการจากบริษัทอื่น
หมายเหตุ: อันนี้ต่างจาก Himalaya email skill ที่แถมมา ซึ่งให้ agent จัดการกล่องจดหมายของคุณผ่านคำสั่งเทอร์มินัล อันนั้นต้องใช้
himalayaCLI ภายนอก ส่วน gateway adapter นี้เป็นวิธีที่ง่ายกว่าและครบจบในตัวเอง
ก่อนเริ่มต้น
คุณต้องมีสามอย่าง:
- บัญชีอีเมลเฉพาะ สำหรับ agent ของคุณ (กรุณาอย่าใช้อินบ็อกซ์ส่วนตัว)
- เปิดใช้งาน IMAP บนบัญชีนั้น
- รหัสผ่านสำหรับแอป (App Password) ถ้าคุณใช้ Gmail หรือผู้ให้บริการที่มีการยืนยันตัวตนสองขั้นตอน
สำหรับ Gmail: เปิดใช้งาน 2FA แล้วสร้าง App Password ที่ myaccount.google.com/apppasswords คุณจะได้รหัสผ่าน 16 ตัวอักษร — ใช้รหัสนั้นแทนรหัสปกติของคุณ
สำหรับ Outlook/Microsoft 365: เปิดใช้งาน 2FA สร้าง app password ภายใต้ “Additional security options” และใช้ outlook.office365.com สำหรับ IMAP และ smtp.office365.com สำหรับ SMTP
สำหรับผู้ให้บริการอื่นๆ ให้ดูเอกสารของพวกเขาสำหรับโฮสต์และพอร์ต IMAP/SMTP (ปกติคือ 993 สำหรับ IMAP SSL และ 587 สำหรับ SMTP STARTTLS)
ขั้นตอนที่ 1: ตั้งค่า Hermes
วิธีที่ง่ายที่สุดคือใช้ตัวช่วยติดตั้ง:
hermes gateway setup
เลือก Email จากเมนูแล้วทำตามขั้นตอน มันจะถามที่อยู่อีเมล รหัสผ่านแอป โฮสต์ IMAP/SMTP และผู้ส่งที่อนุญาต
ชอบตั้งค่าด้วยตัวเอง? เพิ่มสิ่งนี้ลงใน ~/.hermes/.env:
# จำเป็น
EMAIL_ADDRESS=hermes@gmail.com
EMAIL_PASSWORD=abcd efgh ijkl mnop # App password ไม่ใช่รหัสปกติของคุณ
EMAIL_IMAP_HOST=imap.gmail.com
EMAIL_SMTP_HOST=smtp.gmail.com
# ความปลอดภัย (แนะนำ)
EMAIL_ALLOWED_USERS=your@email.com,colleague@work.com
# ไม่บังคับ
EMAIL_IMAP_PORT=993 # ค่าเริ่มต้น: 993
EMAIL_SMTP_PORT=587 # ค่าเริ่มต้น: 587
EMAIL_POLL_INTERVAL=15 # วินาทีระหว่างการตรวจสอบอินบ็อกซ์
EMAIL_HOME_ADDRESS=your@email.com # เป้าหมายการส่งเริ่มต้นสำหรับ cron jobs
ขั้นตอนที่ 2: เริ่ม Gateway
hermes gateway # รันแบบ foreground
hermes gateway install # ติดตั้งเป็น user service
sudo hermes gateway install --system # Linux: system service ตอนบูตเครื่อง
เมื่อเริ่มทำงาน adapter จะทดสอบการเชื่อมต่อทั้ง IMAP และ SMTP ทำเครื่องหมายข้อความทั้งหมดในอินบ็อกซ์ว่า “อ่านแล้ว” (เพื่อให้ประมวลผลเฉพาะอีเมลใหม่) และเริ่มตรวจสอบเป็นระยะ
วิธีการทำงาน
การรับข้อความ adapter จะตรวจสอบอีเมลที่ยังไม่ได้อ่านทุก 15 วินาทีโดยค่าเริ่มต้น สำหรับข้อความใหม่แต่ละฉบับ:
- หัวข้ออีเมล ถูกนำมาเป็นบริบท (เช่น
[Subject: Deploy to production]) - อีเมลตอบกลับ (หัวข้อที่ขึ้นต้นด้วย
Re:) จะข้ามคำนำหน้าหัวข้อ — เพราะมีบริบทเธรดอยู่แล้ว - ไฟล์แนบ ถูกเก็บไว้ในแคชในเครื่อง: รูปภาพพร้อมใช้งานสำหรับ vision tool เอกสารเช่น PDF และ ZIP สำหรับการเข้าถึงไฟล์
- อีเมลที่เป็น HTML อย่างเดียว จะถูกตัดแท็กออกเพื่อแยกข้อความธรรมดา
- ข้อความที่ส่งถึงตัวเอง ถูกกรองออกเพื่อป้องกันการตอบกลับวนซ้ำ
- ผู้ส่งอัตโนมัติ จะถูกเพิกเฉยอย่างเงียบๆ —
noreply@,mailer-daemon@,bounce@และอีเมลที่มีส่วนหัวAuto-Submitted,Precedence: bulkหรือList-Unsubscribe
การส่งตอบกลับ การตอบกลับจะถูกส่งผ่าน SMTP พร้อมการจัดเธรดที่ถูกต้อง: ส่วนหัว In-Reply-To และ References ช่วยให้การสนทนาอยู่ในเธรดเดียวกัน หัวข้อคงคำนำหน้า Re: ไว้ (ไม่ซ้ำ Re: Re:) และการตอบกลับถูกส่งเป็นข้อความ UTF-8 ธรรมดา
ไฟล์แนบ อยากให้ agent ส่งไฟล์กลับมา? แค่ใส่ MEDIA:/path/to/file ในคำตอบของมัน แล้วไฟล์จะถูกแนบให้อัตโนมัติ
ข้ามไฟล์แนบ กังวลเรื่องมัลแวร์หรือแบนด์วิธ? เพิ่มสิ่งนี้ใน config.yaml:
platforms:
email:
skip_attachments: true
เนื้อหาอีเมลยังถูกประมวลผลตามปกติ — เฉพาะไฟล์แนบเท่านั้นที่ถูกข้าม
การควบคุมการเข้าถึง: เข้มงวดโดยค่าเริ่มต้น
อีเมลถูกล็อกดาวน์มากกว่าแพลตฟอร์มแชทโดยการออกแบบ:
- ตั้งค่า
EMAIL_ALLOWED_USERS→ ประมวลผลเฉพาะอีเมลจากที่อยู่เหล่านั้นเท่านั้น - ไม่ตั้งค่า allowlist → ผู้ส่งที่ไม่รู้จักจะถูกเพิกเฉยอย่างเงียบๆ
EMAIL_ALLOW_ALL_USERS=true→ ยอมรับผู้ส่งใดๆ ก็ได้ (ใช้ด้วยความระมัดระวัง!)platforms.email.unauthorized_dm_behavior: pair→ ผู้ส่งที่ไม่รู้จักจะได้รับรหัสจับคู่
กฎทอง: ใช้อินบ็อกซ์เฉพาะ และตั้งค่า EMAIL_ALLOWED_USERS เสมอ การจับคู่ทางอีเมลเป็นแบบเลือกใช้ เพราะอินบ็อกซ์ที่ใช้ร่วมกันมักมีข้อความที่อ่านแล้วซึ่งไม่เกี่ยวข้อง — Hermes ไม่ควรตอบกลับผู้ติดต่อเหล่านั้นโดยค่าเริ่มต้น
การแก้ไขปัญหา
| ปัญหา | วิธีแก้ |
|---|---|
| “IMAP connection failed” ตอนเริ่มทำงาน | ตรวจสอบ EMAIL_IMAP_HOST และ EMAIL_IMAP_PORT ให้แน่ใจว่าเปิดใช้งาน IMAP บนบัญชีแล้ว (Gmail: Settings → Forwarding and POP/IMAP) |
สรุป
Email gateway adapter เปลี่ยนกล่องจดหมายมาตรฐานใดๆ ให้เป็นช่องทางการสื่อสารสำหรับ AI agent ของคุณ ไม่มี dependencies ภายนอก ไม่ต้องใช้ไคลเอนต์พิเศษ — แค่ IMAP, SMTP และการตั้งค่าเล็กน้อย ตั้งค่าบัญชีเฉพาะ ล็อกดาวน์ผู้ส่งที่อนุญาต แล้วปล่อยให้อีเมลไหลเข้ามา
ขอให้สนุกกับการใช้อีเมล! 📧
📖 เอกสารทางการ
この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › user-guide/messaging/email