# Công cụ email tốt nhất cho Supabase: xác thực, sự kiện và vòng đời

URL chính tắc: https://brew.new/vi/blog/best-email-tools-for-supabase-auth-emails-product-events-and-lifecycle-campaigns
Tác giả: Thomas Park
Ngày đăng: 2026-09-19
Ngày cập nhật: 2026-09-29

Bài so sánh này do Brew xuất bản. Chúng tôi đã xem xét tài liệu sản phẩm được dẫn liên kết trong bài vào ngày 28/9/2026. Đây là bài so sánh dựa trên tài liệu, không phải tuyên bố rằng chúng tôi đã dùng thử thực tế từng nền tảng. Hãy kiểm tra giới hạn hiện tại của từng gói trên trang bảng giá của nhà cung cấp.

Bạn ra mắt ứng dụng Supabase, và những người dùng đầu tiên ngoài đội ngũ bắt đầu đăng ký. Email xác nhận của họ vẫn đi qua dịch vụ gửi mặc định. Dịch vụ này chỉ gửi đến các địa chỉ đã được phê duyệt trước, nên không ai trong số họ nhận được email. Email chào mừng bạn dự định gửi vẫn chỉ là một dòng ghi chú trong danh sách việc cần làm.

Một ứng dụng Supabase gửi email vì ba lý do khác nhau. Email xác thực gồm xác nhận đăng ký, magic link và đặt lại mật khẩu. Email sự kiện sản phẩm được gửi khi có điều gì đó xảy ra trong cơ sở dữ liệu. Chiến dịch vòng đời gồm onboarding, email nhắc và email giành lại khách hàng. Một công cụ có thể đảm nhận nhiều hơn một việc, nhưng Supabase khuyên nên tách riêng email xác thực và email tiếp thị.

Bài hướng dẫn này phân loại Resend, Loops, Sequenzy và Brew theo những việc mà tài liệu của từng công cụ có hướng dẫn.

## Những điểm chính

- Dịch vụ email tích hợp sẵn của Supabase dành cho việc thử nghiệm. Dịch vụ này chỉ gửi đến các địa chỉ đã được phê duyệt trước, với giới hạn tần suất thấp. Khi chạy thực tế, email xác thực cần SMTP tùy chỉnh.
- Với email xác thực, Resend, Loops và Sequenzy đều có tài liệu hướng dẫn thiết lập SMTP cho Supabase. Brew thì không có.
- Với sự kiện sản phẩm và email vòng đời, Brew lắng nghe các thay đổi trong `auth.users` và phát các sự kiện như `auth.user.email_confirmed`. Sequenzy đồng bộ các hàng từ một bảng do bạn chọn.
- Supabase khuyến nghị dùng dịch vụ và tên miền riêng cho email xác thực và email tiếp thị.

## Ba việc, ba loại công cụ

| Việc | Cần gì | Công cụ có tài liệu hướng dẫn |
| --- | --- | --- |
| Email xác thực | Một máy chủ SMTP hoặc auth hook mà Supabase Auth gọi đến | Resend, Loops, Sequenzy |
| Sự kiện sản phẩm | Thay đổi trong cơ sở dữ liệu được biến thành trình kích hoạt | Brew (`auth.users`), Sequenzy (một bảng bất kỳ), Loops (đồng bộ liên hệ) |
| Chiến dịch vòng đời | Chuỗi email, email được thiết kế, đối tượng | Brew, Loops, Sequenzy |

Chúng tôi đã kiểm tra tài liệu của từng nhà cung cấp vào ngày 28/9/2026.

## Email xác thực: trước hết, hãy rời khỏi dịch vụ gửi mặc định

[Hướng dẫn SMTP](https://supabase.com/docs/guides/auth/auth-smtp) của Supabase liệt kê các giới hạn của dịch vụ tích hợp sẵn. Dịch vụ này chỉ gửi đến các địa chỉ đã được phê duyệt trước. Giới hạn tần suất thấp, chỉ 2 email mỗi giờ, và có thể thay đổi mà không báo trước. Dịch vụ không có SLA nào về việc gửi email. Supabase yêu cầu bạn thiết lập SMTP tùy chỉnh cho mọi mục đích ngoài thử nghiệm và demo.

Cũng trang đó khuyên không nên trộn lẫn email xác thực với email tiếp thị. Hãy dùng các dịch vụ riêng, hoặc ít nhất là các tên miền gửi riêng như `auth.example.com` và `marketing.example.com`, và không đưa nội dung quảng cáo vào email xác thực.

### Resend

[Hướng dẫn Supabase](https://resend.com/docs/send-with-supabase-smtp) của Resend là một quy trình thiết lập SMTP ngắn gọn. Bạn dùng host `smtp.resend.com`, cổng `465`, tên người dùng `resend` và khóa API làm mật khẩu, nhập ở mục Authentication trong Supabase. Bạn cần có một tên miền đã xác minh trong Resend. Từ đó trở đi, Supabase Auth gửi email qua Resend.

### Loops

Loops có tài liệu cho [hai cách kết nối với Supabase](https://loops.so/docs/integrations/supabase). Auth Hook chuyển mọi email của Supabase Auth qua Loops, còn SMTP là phương án thay thế. Một cơ chế đồng bộ liên hệ riêng đưa người dùng Supabase vào đối tượng của bạn trong Loops.

### Sequenzy

Sequenzy có thể [chuyển email của Supabase Auth](https://docs.sequenzy.com/integrations/supabase) qua dịch vụ SMTP của mình. Sequenzy thiết lập sẵn các mẫu email giao dịch mặc định cho đặt lại mật khẩu, magic link, lời mời và thông báo bảo mật, hoặc bạn có thể tự nhập thông tin xác thực SMTP.

### Brew

Tích hợp Supabase của Brew không gửi email của Supabase Auth, và Brew không có tài liệu về SMTP relay. Hãy để email xác minh, magic link và email đặt lại mật khẩu ở một nhà cung cấp SMTP. API của Brew có thể gửi email giao dịch do ứng dụng của bạn kích hoạt, chẳng hạn biên lai. Còn email của chính Supabase Auth vẫn cần SMTP hoặc auth hook.

## Sự kiện sản phẩm: thay đổi nào trong cơ sở dữ liệu có thể khởi chạy một luồng

### Brew

[Tích hợp Supabase](https://docs.brew.new/integrations/import/supabase) của Brew chạy một script thiết lập để cài trigger cơ sở dữ liệu trên `auth.users`. Trigger này ký từng thay đổi bằng `pgcrypto`, gửi thay đổi đến một webhook Brew riêng bằng `pg_net` và lưu shared secret trong Supabase Vault. Brew nhận ba sự kiện gốc: `auth.user.created`, `auth.user.updated` và `auth.user.deleted`. Brew còn suy ra thêm chín sự kiện khác từ các thay đổi của cột:

- `auth.user.email_confirmed` và `auth.user.phone_confirmed`
- `auth.user.email_changed` và `auth.user.password_changed`
- `auth.user.signed_in`
- `auth.user.banned` và `auth.user.unbanned`
- `auth.user.invited`
- `auth.user.upgraded_from_anonymous`

Người dùng được đồng bộ thành liên hệ với các trường `supabase_*` như trạng thái tài khoản, thời điểm xác minh email và lần đăng nhập gần nhất. Tài liệu của Brew lưu ý rằng việc làm mới token cũng cập nhật `last_sign_in_at`, nên riêng `auth.user.signed_in` không phải là tín hiệu đáng tin cậy cho thấy người dùng “đã quay lại”.

Với các sự kiện nằm ngoài `auth.users`, chẳng hạn `project_created` hoặc `invite_sent`, hãy tạo một trình kích hoạt tùy chỉnh trong Brew rồi kích hoạt từ một Supabase Edge Function. [Hướng dẫn Lovable](https://docs.brew.new/integrations/ai-tools/lovable) của Brew minh họa cách làm này. Function đọc `BREW_API_KEY` từ secrets trong Supabase và gọi `POST /v1/automations/triggers/{triggerEventId}/fire`.

### Sequenzy

Sequenzy kết nối với Supabase qua OAuth và theo dõi một bảng do bạn chọn, thường là `public.profiles`, bằng một trigger `pg_net`. Sequenzy tự động nhận diện các cột email, ID người dùng và tên, đồng thời đồng bộ các cột khác để phân khúc. Thao tác thêm phát sự kiện `contact.subscribed`. Thao tác cập nhật làm mới thuộc tính mà không phát sự kiện, còn thao tác xóa phát `contact.unsubscribed`. Mỗi tích hợp chỉ có một bảng dùng webhook tự động.

### Loops

Loops đồng bộ người dùng Supabase vào đối tượng của bạn và có thể khởi chạy quy trình từ dữ liệu đó. Bạn thiết lập đồng bộ liên hệ riêng, tách biệt với phần gửi email xác thực.

## Chiến dịch vòng đời

Brew tạo email từ tệp [email-design.md](/vi/blog/email-design-md) của thương hiệu, dựng tự động hóa từ một câu lệnh và gửi từ tên miền đã xác minh của bạn. Một luồng chào mừng có thể bắt đầu từ `auth.user.email_confirmed` để email đầu tiên chỉ đến những người đã xác minh. Brew không có kênh SMS và không xử lý email của Supabase Auth.

Loops và Sequenzy đảm nhận cả chiến dịch vòng đời lẫn email xác thực, nên một nhà cung cấp có thể lo cả hai. Nếu chọn cách này, bạn vẫn nên dùng tên miền gửi riêng cho email xác thực và email tiếp thị, như Supabase khuyến nghị.

## Ví dụ thiết lập cho một ứng dụng Supabase nhỏ

Dưới đây là một cách phân chia khả thi. Chúng tôi chưa thử nghiệm toàn bộ từ đầu đến cuối.

1. Supabase Auth gửi email xác nhận, magic link và email đặt lại mật khẩu qua SMTP tùy chỉnh (Resend, Loops hoặc Sequenzy) trên `auth.example.com`.
2. Tích hợp Supabase của Brew lắng nghe `auth.users`. Một tự động hóa chào mừng bắt đầu từ `auth.user.email_confirmed`.
3. Ứng dụng của bạn lên lịch một lần kiểm tra để gửi email nhắc. Đến thời điểm đã định, ứng dụng đọc trạng thái dự án hiện tại của người dùng và chỉ kích hoạt một sự kiện Brew riêng là `project_reminder_eligible` nếu người dùng vẫn chưa có dự án nào. Một tự động hóa đã xuất bản sẽ gửi email nhắc từ sự kiện đó. Ngoài ra, bạn có thể định nghĩa và đồng bộ một trường liên hệ kiểu Có/Không là `has_project` trong Brew rồi kiểm tra `contact.has_project equals false` sau một bước chờ. Điều kiện đó đọc trường liên hệ hiện tại trong Brew; payload của sự kiện ban đầu vẫn giữ nguyên.
4. Email vòng đời được gửi từ một tên miền tiếp thị kèm header hủy đăng ký.

## Câu hỏi thường gặp

### Tôi có thể dùng dịch vụ email mặc định của Supabase khi chạy thực tế không?

Supabase nói là không. Dịch vụ mặc định chỉ gửi đến các địa chỉ đã được phê duyệt trước, với tần suất thấp và không có SLA. Hãy thiết lập SMTP tùy chỉnh.

### Brew có thay thế email xác minh hoặc email đặt lại mật khẩu của Supabase không?

Không. Tích hợp Supabase của Brew khởi chạy tự động hóa từ các thay đổi trong `auth.users`. Email xác minh và email đặt lại mật khẩu cần một nhà cung cấp SMTP hoặc auth hook.

### Vì sao nên chờ `email_confirmed` rồi mới gửi email chào mừng?

Khi đó, email chào mừng chỉ đến những địa chỉ thực sự hoạt động, và đến sau email xác minh thay vì đến cùng lúc.

### Người dùng Supabase được đồng bộ có được tính là đã đồng ý nhận email tiếp thị không?

Không mặc nhiên như vậy. Tài liệu của Brew nêu rõ mọi người nhận email tiếp thị phải đồng ý nhận email trước khi được nhập. Hãy lưu sự đồng ý khi người dùng đăng ký và lọc theo thông tin đó.

## Bước tiếp theo

Để xem những sự kiện nào được gửi đến từ dự án của bạn, hãy [kết nối Supabase trong Brew](/vi/browse/integrations/supabase), thêm một người dùng thử và theo dõi mục Sự kiện gần đây trước khi xuất bản một luồng.
