Gửi thư qua SMTP relay
SMTP relay giúp những ứng dụng không gọi được HTTP API vẫn gửi email giao dịch qua SMTP relay của ReputeCast: ứng dụng kết nối tới cổng 587 (STARTTLS) hoặc 465 (TLS), xác thực bằng một thông tin xác thực chỉ dùng để gửi, và thư đi qua tuyến Giao dịch, danh sách chặn gửi và nhật ký thư của không gian làm việc. Quản trị viên hệ thống bật relay một lần cho mỗi hệ thống; sau đó mỗi không gian làm việc tự tạo thông tin xác thực của mình.
Trước khi bắt đầu
Phần tiêu đề “Trước khi bắt đầu”- Bạn là quản trị viên hệ thống, và bạn có thể thay đổi tường lửa của máy chủ cùng tệp Docker Compose.
- Một tên máy chủ cho relay, như
smtp.example.com, có bản ghiA/AAAAtrỏ về máy chủ. ReputeCast gợi ý host của URL công khai của hệ thống. - Trong không gian làm việc:
apikeys:manageđể tạo thông tin xác thực SMTP, và một người gửi Giao dịch đã xác minh. Địa chỉFromcủa mọi thư phải là một người gửi Giao dịch đã xác minh (xem thêm tên miền gửi thư và người gửi). - Các tiến trình có vai trò
webchạy các listener của relay. Nếu bạn tách vai trò, xem mở rộng với các vai trò web, ingest và worker.
Mở cổng
Phần tiêu đề “Mở cổng”ReputeCast lắng nghe trên các cổng relay bên trong container, nhưng Docker Compose chỉ mở những cổng bạn liệt kê.
Tệp deploy/docker-compose.yml mặc định chỉ mở cổng 8080, nên bạn cần tự thêm hai cổng relay vào service app:
services: app: ports: - "${REPUTECAST_PORT:-8080}:8080" - "587:587" # SMTP relay, STARTTLS - "465:465" # SMTP relay, implicit TLSÁp dụng thay đổi bằng docker compose up -d, và mở cả hai cổng trên tường lửa của máy chủ. SMTP không phải HTTP, nên
các cổng relay đi thẳng đến ứng dụng, không bao giờ qua reverse proxy của bạn. Nếu bạn đổi cổng trong cài đặt relay,
hãy mở các cổng đó thay thế.
Bật relay
Phần tiêu đề “Bật relay”-
Mở Quản trị hệ thống, rồi Hệ thống và cập nhật từ menu tài khoản và tìm phần SMTP relay.
-
Đặt Tên máy chủ, Cổng STARTTLS (587) và Cổng TLS (465). Hai cổng phải khác nhau.
-
Chọn Chứng chỉ:
- Let’s Encrypt: ReputeCast tự lấy và gia hạn chứng chỉ. Let’s Encrypt xác thực tên máy chủ qua HTTP, nên
http://<hostname>/.well-known/acme-challenge/phải đến được một tiến trình web của ReputeCast, ví dụ thông qua reverse proxy của bạn. Mọi node web dùng chung chứng chỉ này. - Tệp chứng chỉ và khóa: tải lên Chuỗi chứng chỉ (PEM) và Khóa riêng (PEM). Khóa riêng ở chế độ chỉ ghi: nó được niêm phong và không bao giờ hiển thị lại.
- Let’s Encrypt: ReputeCast tự lấy và gia hạn chứng chỉ. Let’s Encrypt xác thực tên máy chủ qua HTTP, nên
-
Chọn Bật, rồi Chạy kiểm tra. ReputeCast kiểm tra tên máy chủ có phân giải được không, cả hai cổng có truy cập được từ internet không, và chứng chỉ có hợp lệ không. Các kiểm tra này cũng chạy mỗi 10 phút; quản trị viên hệ thống được thông báo khi một cổng ngừng phản hồi.
Tạo thông tin xác thực SMTP
Phần tiêu đề “Tạo thông tin xác thực SMTP”-
Trong không gian làm việc, mở Giao dịch, rồi Thiết lập rồi chọn Tạo thông tin xác thực SMTP.
-
Đặt tên theo ứng dụng, chọn chế độ Thật hoặc Thử nghiệm, và nếu muốn, giới hạn những mẫu và danh mục mà thông tin xác thực được phép gửi, cũng như đặt thời điểm hết hạn. Chế độ thử nghiệm chỉ gửi tới thành viên của không gian làm việc và các địa chỉ thử mà bạn cho phép.
-
Sao chép mật khẩu ngay: nó chỉ hiển thị một lần. Tên người dùng là ID khóa của thông tin xác thực; Mật khẩu là khóa bí mật của nó, bắt đầu bằng
rc_smtp_. Thông tin xác thực này chỉ cótransactional:sendvà không bao giờ có nhiều quyền hơn bạn đang có: thông tin xác thực ngừng hoạt động khi bạn rời không gian làm việc, bị vô hiệu hóa hoặc không còntransactional:send.

Ảnh chụp này hiển thị giao diện tiếng Anh.
Cấu hình ứng dụng
Phần tiêu đề “Cấu hình ứng dụng”| Cài đặt | Giá trị |
|---|---|
| Host | Tên máy chủ của relay, ví dụ smtp.example.com |
| Port | 587 với STARTTLS, hoặc 465 với TLS |
| Auth | PLAIN hoặc LOGIN |
| Username | ID khóa của thông tin xác thực |
| Password | Khóa bí mật của thông tin xác thực (rc_smtp_…) |
| From | Một địa chỉ thuộc người gửi Giao dịch đã xác minh |
Hai header không bắt buộc dùng để gắn nhãn thư trong ReputeCast; relay đọc chúng và không chuyển tiếp chúng đi:
X-ReputeCast-Tags: invoice, euX-ReputeCast-Category: BillingX-ReputeCast-Tags gồm các thẻ cách nhau bằng dấu phẩy. X-ReputeCast-Category nhận tên hoặc ID của một danh mục;
nếu không có header này, thông tin xác thực chỉ được phép dùng một danh mục sẽ dùng danh mục đó. Người nhận đã tắt một
danh mục Tùy chọn sẽ không nhận thư của danh mục đó.
Giới hạn
Phần tiêu đề “Giới hạn”| Thiết lập | Mặc định | Cách thay đổi |
|---|---|---|
| Cổng | 587 (STARTTLS) and 465 (TLS) | Quản trị hệ thống › Hệ thống và cập nhật › SMTP relay; hai cổng bất kỳ khác nhau |
| Thư lớn nhất | 40 MiB | Cố định; giới hạn của nhà cung cấp trong tuyến có thể thấp hơn |
| Số người nhận mỗi thư | 50 | Cố định; mỗi người nhận được tính vào tốc độ gửi của thông tin xác thực SMTP |
| Thời gian chờ đọc và ghi của kết nối | 5 minutes each | Cố định |
| Kiểm tra trạng thái | Every 10 minutes | Chọn Chạy lại kiểm tra |
| Thay đổi cài đặt đến các tiến trình web khác | Within 30 s | Cố định |
Kiểm tra kết quả
Phần tiêu đề “Kiểm tra kết quả”Gửi một thư từ ứng dụng của bạn, rồi mở Giao dịch, rồi Thư. Thư hiển thị Thư thô (SMTP) thay cho tên mẫu, kèm dòng thời gian gửi.
Khắc phục sự cố
Phần tiêu đề “Khắc phục sự cố”- Kiểm tra báo một cổng không truy cập được → cổng chưa được mở trong Compose, hoặc tường lửa phía trước máy chủ đang chặn nó.
- Kiểm tra báo tên máy chủ không phân giải được → thêm bản ghi
A/AAAA, chờ DNS cập nhật, rồi chạy lại kiểm tra. - Let’s Encrypt thất bại → cổng 80 của tên máy chủ không đến được tiến trình web của ReputeCast. Hãy định tuyến
/.well-known/acme-challenge/tới tiến trình đó, hoặc tải lên tệp chứng chỉ. - Xác thực thất bại → dùng ID khóa làm tên người dùng, không phải tên của thông tin xác thực, và kiểm tra thông tin
xác thực chưa bị thu hồi hoặc hết hạn, và thành viên đã tạo nó vẫn đang hoạt động và có
transactional:send. Phản hồi535cho biết lý do. - Thư bị từ chối với lỗi kích thước → relay nhận tối đa 40 MiB, nhưng các nhà cung cấp gửi thư trên tuyến có thể nhận ít hơn; phản hồi sẽ nói rõ điều này.
- Ứng dụng bị từ chối kết nối → relay đang tắt. HTTP API vẫn hoạt động trong mọi trường hợp.