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.

Không phụ thuộc bên ngoài

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. Đi tới Mật khẩu ứng dụng
  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. Đi tới Cài đặt bảo mật
  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ó kép Re: Re: )
  • Message-ID được tạo bằng miền của đại lý
  • 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ào 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 :

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. ** EMAIL_ALLOWED_USERS đặt** → 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 ** → bất kỳ người gửi nào cũng đượ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 terminal 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 độngXá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 độngXá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ắnKiể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ậmKhoả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ồngBộ đ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 — nhân viên 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 đại lý
  • 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ến | Bắt buộc | Mặc định

| Mô tả | |----------|----------|---------|-------------| | EMAIL_ADDRESS | Có | — | Địa chỉ email của đại lý | | EMAIL_PASSWORD | Có | — | Mật khẩu email hoặc mật khẩu ứng dụng | | EMAIL_IMAP_HOST | Có | — | Máy chủ lưu trữ IMAP (ví dụ: imap.gmail.com ) | | EMAIL_SMTP_HOST | Có | — | Máy chủ máy chủ SMTP (ví dụ: smtp.gmail.com ) | | EMAIL_IMAP_PORT | Không | 993 | Cổng máy chủ IMAP | | EMAIL_SMTP_PORT | Không | 587 | Cổng máy chủ SMTP | | EMAIL_POLL_INTERVAL | Không | 15 | Số giây giữa các lần kiểm tra hộp thư đến | | EMAIL_ALLOWED_USERS | Không | — | Địa chỉ người gửi được phép phân tách bằng dấu phẩy | | EMAIL_HOME_ADDRESS | Không | — | Mục tiêu phân phối mặc định cho công việc định kỳ | | EMAIL_ALLOW_ALL_USERS | Không | false | Cho phép tất cả người gửi (không khuyến khích) |