Mailrelay biến email nhận được thành webhook cho tự động hóa tự chủ
Một công cụ mã nguồn mở mới có tên mailrelay chấp nhận lưu lượng SMTP, phân tích cú pháp email và kích hoạt các webhook dựa trên các quy tắc có thể cấu hình để tự động hóa cục bộ.
Bài được dịch tự động từ bản gốc tiếng Anh.
Vào ngày 24 tháng 10 năm 2026, nhà phát triển gowthamgts đã ra mắt mailrelay, một máy chủ thư đến mã nguồn mở được thiết kế để thu hẹp khoảng cách giữa các giao thức email truyền thống và tự động hóa hiện đại dựa trên HTTP. Giải pháp tự chủ này cho phép người dùng nhận email, phân tích nội dung của chúng và kích hoạt các webhook theo các quy tắc cụ thể, giúp tích hợp liền mạch với các dịch vụ homelab và các công cụ doanh nghiệp nhỏ không hỗ trợ sẵn việc tiếp nhận email.
Điều gì đã xảy ra
Bản phát hành giới thiệu một máy chủ SMTP nhẹ được viết bằng Go, đóng vai trò là cầu nối chuyển tiếp cho các tin nhắn đến. Thay vì lưu trữ email trong hộp thư truyền thống để con người đọc, mailrelay đánh giá từng tin nhắn dựa trên các điều kiện do người dùng định nghĩa và chuyển dữ liệu đến các URL webhook được chỉ định. Hệ thống được thiết kế để có độ bền cao; nó xác nhận việc nhận email ngay lập tức với phản hồi 250 OK, trong khi việc gửi webhook thực tế diễn ra bất đồng bộ ở nền. Điều này đảm bảo rằng các lỗi tạm thời hoặc phản hồi chậm từ các dịch vụ hạ nguồn không khiến email gốc bị trả lại (bounce).
Dự án cung cấp nhiều tùy chọn triển khai để phù hợp với các sở thích cơ sở hạ tầng khác nhau. Người dùng có thể chạy nó qua Docker, nơi giao diện web được bật theo mặc định, hoặc dưới dạng một binary độc lập được xây dựng từ mã nguồn. Ứng dụng lưu trữ tất cả dữ liệu vận hành, bao gồm cơ sở dữ liệu SQLite, các tệp thô .eml và cài đặt cấu hình, trong một thư mục /data duy nhất. Cấu trúc này đơn giản hóa việc sao lưu và di chuyển cho những người tự chủ hệ thống ưu tiên quản lý phụ thuộc tối thiểu. Một tệp Docker Compose hướng dẫn nhanh có sẵn để giúp người dùng thử nghiệm chức năng với một máy chủ echo mẫu trước khi kết nối với các dịch vụ thực tế.
Chi tiết chính
- Định tuyến dựa trên quy tắc: Người dùng có thể tạo các quy tắc trong giao diện web để khớp email dựa trên các trường như From, To, Subject, Body, tiêu đề hoặc địa chỉ phong bì SMTP. Các mẫu hỗ trợ glob và biểu thức chính quy.
- Gửi bất đồng bộ với thử lại: Webhook được gửi ở nền với backoff lũy thừa. Mọi nỗ lực đều được ghi lại và các lần gửi thất bại có thể được phát lại thủ công từ giao diện.
- Mặc định bảo mật: Theo mặc định, webhook không thể truy cập vào các mạng riêng, localhost hoặc điểm cuối metadata đám mây. Hạn chế này có thể được gỡ bỏ thông qua các biến môi trường để tích hợp dịch vụ nội bộ.
- Hỗ trợ xác thực: Giao diện web hỗ trợ các nhà cung cấp OpenID Connect (OIDC) như Google, Okta và Authentik để truy cập an toàn, mặc dù đăng nhập GitHub không được hỗ trợ do hạn chế về giao thức.
- Định dạng tải trọng linh hoạt: Webhook nhận JSON đã được phân tích theo mặc định, nhưng người dùng có thể tùy chỉnh đầu ra bằng cách sử dụng các template Go với các hàm để nối danh sách hoặc đặt giá trị dự phòng.
- Xác minh email: Máy chủ thực hiện kiểm tra SPF, DKIM và DMARC, với các tùy chọn để ghi nhật ký hoặc thực thi các chính sách này. Nó cũng xác minh các tiêu đề ARC để giữ nguyên kết quả xác thực cho thư được chuyển tiếp.
Bối cảnh
Trong nhiều năm, việc tích hợp email vào các quy trình làm việc tự động đòi hỏi middleware phức tạp hoặc sự phụ thuộc vào các nền tảng SaaS của bên thứ ba. Các máy chủ SMTP truyền thống được thiết kế cho giao tiếp giữa người với người, lưu trữ tin nhắn trong hộp thư thay vì kích hoạt việc thực thi mã. Ngược lại, webhook là tiêu chuẩn cho giao tiếp giữa máy với máy, cho phép các ứng dụng gửi dữ liệu thời gian thực qua HTTP. Mailrelay thu hẹp khoảng cách này bằng cách đóng vai trò là điểm cuối SMTP dịch các sự kiện email thành yêu cầu HTTP.
Cách tiếp cận này đặc biệt có giá trị đối với các môi trường tự chủ, nơi quyền riêng tư và khả năng kiểm soát là ưu tiên hàng đầu. Thay vì cấp cho một dịch vụ đám mây quyền truy cập vào các cảnh báo tài chính nhạy cảm hoặc vé hỗ trợ, các tổ chức có thể giữ toàn bộ quy trình trong mạng nội bộ của mình. Công cụ xử lý các phức tạp của việc phân tích cú pháp email, bao gồm trích xuất tệp đính kèm và phân tích tiêu đề, trình bày dữ liệu dưới định dạng JSON sạch mà các ứng dụng hiện đại có thể dễ dàng sử dụng.
Tại sao điều này quan trọng
Các đội ngũ vận hành phần mềm riêng thường gặp khó khăn trong việc kết nối các thông báo dựa trên email cũ với các bảng điều khiển và công cụ tự động hóa hiện đại. Ví dụ, cảnh báo ngân hàng, thông báo vận chuyển hoặc email giám sát hệ thống thường rơi vào hộp thư, đòi hỏi sự can thiệp thủ công để xử lý. Mailrelay cho phép các tin nhắn này tự động kích hoạt hành động trong các công cụ như Home Assistant, Paperless-ngx hoặc API tùy chỉnh. Điều này giảm khối lượng công việc thủ công và đảm bảo rằng thông tin quan trọng được xử lý ngay lập tức mà không có sự chậm trễ do con người.
Hơn nữa, khả năng phát lại webhook là một lợi thế vận hành đáng kể. Trong các hệ thống phân tán, sự cố mạng hoặc khởi động lại dịch vụ có thể khiến việc gửi webhook thất bại. Nếu không có cơ chế thử lại, các sự kiện này sẽ bị mất vĩnh viễn. Mailrelay ghi lại mọi nỗ lực và cho phép quản trị viên gửi lại các email cụ thể từ giao diện người dùng, đảm bảo tính nhất quán của dữ liệu. Trạng thái bảo mật mặc định, chặn truy cập vào các mạng riêng trừ khi được cho phép rõ ràng, cũng bảo vệ chống lại việc phơi bày nội bộ vô tình khi cấu hình các dịch vụ hướng ra ngoài.
Bạn có thể làm gì
- Triển khai ngăn xếp Docker Compose hướng dẫn nhanh để thử nghiệm máy nghe SMTP và máy chủ echo webhook cục bộ.
- Cấu hình
smtp.allowed_recipientsđể hạn chế máy chủ chỉ chấp nhận email cho các miền hoặc địa chỉ cụ thể của bạn. - Thiết lập xác thực OIDC cho giao diện web bằng các nhà cung cấp như Authentik hoặc Keycloak để bảo vệ quyền truy cập quản trị.
- Sử dụng các template Go trong cấu hình quy tắc để loại bỏ các tiêu đề không cần thiết và giảm kích thước tải trọng gửi đến các dịch vụ hạ nguồn của bạn.
- Chỉ bật
webhook.allow_private_networksnếu các dịch vụ tự động hóa đích của bạn nằm trên cùng một mạng cục bộ hoặc cầu Docker. - Giám sát điểm cuối
/metricsvới Prometheus để theo dõi khối lượng email, tỷ lệ thành công của webhook và số lần thử lại.



