Chuyển tới nội dung chính

Cài đặt email

Hermes có thể nhận và trả lời email bằng giao thức IMAP và SMTP tiêu chuẩn. Gửi email đến địa chỉ của tổng đài viên và địa chỉ đó sẽ trả lời ngay trong chuỗi — không cần ứng dụng khách hoặc API bot đặc biệt. Hoạt động với Gmail, Outlook, Yahoo, Fastmail hoặc bất kỳ nhà cung cấp nào hỗ trợ IMAP/SMTP.

No External Dependencies

Bộ điều hợp Email sử dụng các mô-đun imaplib, smtplibemail tích hợp sẵn của Python. Không có gói bổ sung hoặc dịch vụ bên ngoài được yêu cầu.


Điều kiện tiên quyết

  • Tài khoản email dành riêng cho Hermes Agent của bạn (không sử dụng email cá nhân của bạn)
  • Bật IMAP trên tài khoản email
  • Mật khẩu ứng dụng nếu sử dụng Gmail hoặc nhà cung cấp khác có 2FA

Thiết lập Gmail

  1. Kích hoạt Xác thực 2 yếu tố trên Tài khoản Google của bạn
  2. Vào App Passwords
  3. Tạo Mật khẩu ứng dụng mới (chọn "Thư" hoặc "Khác")
  4. Sao chép mật khẩu 16 ký tự — bạn sẽ sử dụng mật khẩu này thay vì mật khẩu thông thường của mình

Outlook / Microsoft 365

  1. Vào Security Settings
  2. Kích hoạt 2FA nếu chưa kích hoạt
  3. Tạo Mật khẩu ứng dụng trong "Tùy chọn bảo mật bổ sung"
  4. Máy chủ IMAP: outlook.office365.com, máy chủ SMTP: smtp.office365.com

Nhà cung cấp khác

Hầu hết các nhà cung cấp email đều hỗ trợ IMAP/SMTP. Kiểm tra tài liệu của nhà cung cấp của bạn để biết:

  • Máy chủ và cổng IMAP (thường là cổng 993 với SSL)
  • Máy chủ và cổng SMTP (thường là cổng 587 với STARTTLS)
  • Có cần mật khẩu ứng dụng hay không

Bước 1: Cấu hình Hermes

Cách dễ nhất:

Hermes gateway setup

Chọn Email từ menu nền tảng. Trình hướng dẫn sẽ nhắc nhập địa chỉ email, mật khẩu, máy chủ IMAP/SMTP và người gửi được phép của bạn.

Cấu hình thủ công

Thêm vào ~/.Hermes/.env:

# Required
EMAIL_ADDRESS=Hermes@gmail.com
EMAIL_PASSWORD=abcd efgh ijkl mnop # App password (not your regular password)
EMAIL_IMAP_HOST=imap.gmail.com
EMAIL_SMTP_HOST=smtp.gmail.com

# Security (recommended)
EMAIL_ALLOWED_USERS=your@email.com,colleague@work.com

# Optional
EMAIL_IMAP_PORT=993 # Default: 993 (IMAP SSL)
EMAIL_SMTP_PORT=587 # Default: 587 (SMTP STARTTLS)
EMAIL_POLL_INTERVAL=15 # Seconds between inbox checks (default: 15)
EMAIL_HOME_ADDRESS=your@email.com # Default delivery target for cron jobs

Bước 2: Khởi động Gateway

Hermes gateway              # Run in foreground
Hermes gateway install # Install as a user service
sudo Hermes gateway install --system # Linux only: boot-time system service

Khi khởi động, bộ chuyển đổi:

  1. Kiểm tra kết nối IMAP và SMTP
  2. Đánh dấu tất cả các thư trong hộp thư đến hiện có là "đã xem" (chỉ xử lý các email mới)
  3. Bắt đầu thăm dò tin nhắn mới

Nó hoạt động như thế nào

Nhận tin nhắn

Bộ điều hợp thăm dò hộp thư đến IMAP để tìm các tin nhắn CHƯA XEM theo khoảng thời gian có thể định cấu hình (mặc định: 15 giây). Đối với mỗi email mới:

  • Dòng chủ đề được đưa vào làm ngữ cảnh (ví dụ: [Subject: Deploy to production])
  • Trả lời email (chủ đề bắt đầu bằng Re:) bỏ qua tiền tố chủ đề — bối cảnh chuỗi đã được thiết lập
  • Tệp đính kèm được lưu trữ cục bộ:
    • Hình ảnh (JPEG, PNG, GIF, WebP) → có sẵn cho công cụ thị giác
    • Tài liệu (PDF, ZIP, v.v.) → có sẵn để truy cập tệp
  • Email chỉ có HTML đã bị loại bỏ thẻ để trích xuất văn bản thuần túy
  • Tự tin được lọc ra để tránh lặp lại trả lời
  • Người gửi tự động/không trả lời bị âm thầm bỏ qua — noreply@, mailer-daemon@, bounce@, no-reply@ và các email có tiêu đề Auto-Submitted, Precedence: bulk hoặc List-Unsubscribe

Gửi thư trả lời

Thư trả lời được gửi qua SMTP với chuỗi email thích hợp:

  • Các tiêu đề In-Reply-ToReferences duy trì chuỗi
  • Dòng chủ đề được giữ nguyên bằng tiền tố Re: (không có Re: Re: kép)
  • Message-ID được tạo bằng miền của Agent
  • Phản hồi được gửi dưới dạng văn bản thuần túy (UTF-8)

Tệp đính kèm

Tác nhân có thể gửi tệp đính kèm trong thư trả lời. Bao gồm MEDIA:/path/to/file trong phản hồi và tệp sẽ được đính kèm với email gửi đi.

Bỏ qua tệp đính kèm

Để bỏ qua tất cả các tệp đính kèm đến (để bảo vệ phần mềm độc hại hoặc tiết kiệm băng thông), hãy thêm vào config.yaml của bạn:

platforms:
email:
skip_attachments: true

Khi được bật, phần đính kèm và phần nội tuyến sẽ bị bỏ qua trước khi giải mã tải trọng. Nội dung email vẫn được xử lý bình thường.


Kiểm soát truy cập

Truy cập email tuân theo mô hình tương tự như tất cả các nền tảng Hermes khác:

  1. Bộ EMAIL_ALLOWED_USERS → chỉ những email từ những địa chỉ đó mới được xử lý
  2. Chưa đặt danh sách cho phép → người gửi không xác định sẽ nhận được mã ghép nối
  3. EMAIL_ALLOW_ALL_USERS=true → mọi người gửi đều được chấp nhận (sử dụng thận trọng)
cảnh báo

Luôn định cấu hình EMAIL_ALLOWED_USERS. Nếu không có nó, bất kỳ ai biết địa chỉ email của tổng đài viên đều có thể gửi lệnh. Tác nhân có quyền truy cập thiết bị đầu cuối theo mặc định.


Khắc phục sự cố| Vấn đề | Giải pháp |

|----------|----------| | "Kết nối IMAP không thành công" khi khởi động | Xác minh EMAIL_IMAP_HOSTEMAIL_IMAP_PORT. Đảm bảo IMAP được bật trên tài khoản. Đối với Gmail, hãy bật nó trong Cài đặt → Chuyển tiếp và POP/IMAP. | | "Kết nối SMTP không thành công" khi khởi động | Xác minh EMAIL_SMTP_HOSTEMAIL_SMTP_PORT. Kiểm tra xem mật khẩu của bạn có đúng không (sử dụng Mật khẩu ứng dụng cho Gmail). | | Không nhận được tin nhắn | Kiểm tra EMAIL_ALLOWED_USERS bao gồm email của người gửi. Kiểm tra thư mục thư rác - một số nhà cung cấp gắn cờ trả lời tự động. | | "Xác thực không thành công" | Đối với Gmail, bạn phải sử dụng Mật khẩu ứng dụng chứ không phải mật khẩu thông thường. Đảm bảo 2FA được bật trước tiên. | | Trả lời trùng lặp | Đảm bảo chỉ có một phiên bản cổng đang chạy. Kiểm tra Hermes gateway status. | | Phản hồi chậm | Khoảng thời gian thăm dò mặc định là 15 giây. Giảm bằng EMAIL_POLL_INTERVAL=5 để phản hồi nhanh hơn (nhưng có nhiều kết nối IMAP hơn). | | Trả lời không phân luồng | Bộ điều hợp sử dụng tiêu đề In-Reply-To. Một số ứng dụng email (đặc biệt là dựa trên web) có thể không phân luồng chính xác các thư tự động. |


Bảo mật

cảnh báo

Sử dụng tài khoản email chuyên dụng. Không sử dụng email cá nhân của bạn — Agent lưu mật khẩu trong .env và có toàn quyền truy cập hộp thư đến qua IMAP.

  • Sử dụng Mật khẩu ứng dụng thay vì mật khẩu chính của bạn (bắt buộc đối với Gmail có 2FA)
  • Đặt EMAIL_ALLOWED_USERS để hạn chế người có thể tương tác với Agent
  • Mật khẩu được lưu trong ~/.Hermes/.env - bảo vệ tệp này (chmod 600)
  • IMAP sử dụng SSL (cổng 993) và SMTP sử dụng STARTTLS (cổng 587) theo mặc định - các kết nối được mã hóa

Tham chiếu biến môi trường

BiếnBắt buộcMặc địnhMô tả
EMAIL_ADDRESSĐịa chỉ email của Agent
EMAIL_PASSWORDMật khẩu email hoặc mật khẩu ứng dụng
EMAIL_IMAP_HOSTMáy chủ máy chủ IMAP (ví dụ: imap.gmail.com)
EMAIL_SMTP_HOSTMáy chủ máy chủ SMTP (ví dụ: smtp.gmail.com)
EMAIL_IMAP_PORTKhông993Cổng máy chủ IMAP
EMAIL_SMTP_PORTKhông587Cổng máy chủ SMTP
EMAIL_POLL_INTERVALKhông15Số giây giữa các lần kiểm tra hộp thư đến
EMAIL_ALLOWED_USERSKhôngĐịa chỉ người gửi được phép phân tách bằng dấu phẩy
EMAIL_HOME_ADDRESSKhôngMục tiêu phân phối mặc định cho công việc định kỳ
EMAIL_ALLOW_ALL_USERSKhôngfalseCho phép tất cả người gửi (không khuyến khích)