§1Bối cảnh
Có thể bạn đã để ý, email liên hệ của Trạm Dev là [email protected]. Thông thường để có một email như vậy thì có thể trả vài đô để dùng Google Workspace. Tuy nhiên, phương án đó xem chừng hơi đao to búa lớn so với một blog còn đang xếp từng viên gạch. Sau khi tìm hiểu qua, mình xác định thực hiện phương án sử dụng dịch vụ miễn phí quen thuộc: Cloudflare và Gmail.
Sơ lược bài toán: bạn sở hữu một domain, ví dụ mydomain.com, và bạn muốn sử dụng email với domain của mình, chẳng hạn [email protected], để nhận và gửi email, và bạn cần một phương án đơn giản, không mất phí.
§2Phương án
Trước hết mình sẽ muốn sử dụng gmail để nhận và gửi email, lý do đơn giản, mình đã quá quen thuộc với gmail rồi.
Vấn đề đầu tiên, mình sẽ cần thiết lập để khi người khác gửi email vào [email protected] thì mình sẽ nhận được trong gmail của mình, chẳng hạn mình có tài khoản gmail là [email protected]. Vấn đề này mình sẽ sử dụng tính năng Email routing của Cloudflare.
Vấn đề tiếp theo là cho phép gửi email từ gmail với tư cách của [email protected]. Cái này thì gmail cũng đã hỗ trợ, mình chỉ cần thiết lập là được.
§3Triển khai
Thiết lập trong cloudflare
Trước hết, domain của bạn cần setup để chuyển sang sử dụng DNS của Cloudflare. Sau khi setup xong, Cloudflare sẽ tạo sẵn cho mình các bản ghi MX, và TXT phục vụ cho việc nhận gửi email. Đoạn này nếu bạn nào chưa sử dụng Cloudflare thì sẽ cần tìm hiểu cách trỏ domain sang Cloudflare.
Tiếp theo mình sẽ vào mục Email > Email Routing. Chuyển sang tab Routing rules. Ở đây mình sẽ thấy danh sách các email đã được thiết lập.
Click vào Create address để thêm email mới, sau đó bạn nhập email custom và gmail của bạn vào. Save là xong.

Bây giờ bạn có thể gửi thử một email tới [email protected] rồi vào gmail để kiểm tra xem nó có xuất hiện ở trong gmail của bạn hay không. Trong trường hợp không nhận được thì có gì đó sai sai rồi.
Sau khi chắc chắn là bạn đã nhận được email thì chuyển qua bước tiếp theo.
Tạo App password
Quá trình thiết lập tiếp theo sẽ cần sử dụng đến App password, vì Gmail không cho sử dụng trực tiếp password của tài khoản gmail.
Bạn click vào avatar tài khoản Gmail, rồi click Manage your Google Account để vào phần quản lý. Hoặc vào link https://myaccount.google.com/. Bạn search App passwords trên thanh search để tìm đến tính năng App passwords.

Ở đây bạn nhập một cái tên cho password sẽ tạo rồi nhấn Create. Nó sẽ hiện ra cho bạn một password. Hãy copy nó để tạm đâu đó rồi chuyển sang bước tiếp theo. Sau khi đã xong bước tiếp theo, bạn có thể xóa bản copy tạm đó đi, không cần lưu lại. Lưu ý là đừng xóa app password trong Google Account, vì Gmail cần nó để gửi email.
Thiết lập trong gmail
Bạn vào tài khoản gmail. Vào Settings. Vào tab Accounts and Import. Kéo xuống mục Send mail as: và click vào Add another email address. Một popup sẽ hiện lên và bạn sẽ nhập thông tin domain của bạn vào:

Đoạn này bạn bỏ tick Treat as alias nhé. Lý do tại sao thì bạn có thể click vào Learn more để đọc.
Click Next step. Tiếp theo bạn nhập thông tin về tài khoản gmail của bạn như trên ảnh.

Thông tin:
- SMTP Server: smtp.gmail.com
- Port: 587
- Username: là username tài khoản gmail của bạn
- Password: chính là app password đã tạo ở bước trên, bạn hãy paste vào đây
Chú ý: ô Username bạn chỉ nhập username thôi nhé, không nhập phần @gmail.com
Click Add Account, gmail sẽ kiểm tra xác thực và thông báo thành công nếu không có gì bất thường. Sau đó gmail sẽ gửi một email xác thực tới [email protected]. Lúc này bạn chỉ cần vào Inbox của gmail, mở email vừa nhận được và click vào link xác thực là xong.
Cập nhật SPF trong cloudflare
Đến đây đã gửi được email, nhưng email gửi đi rất dễ bị đánh dấu spam. Lý do là bản ghi SPF mà Cloudflare tạo cho Email routing chỉ cho phép máy chủ của Cloudflare, trong khi email bây giờ được gửi đi từ máy chủ của Google.
Vào DNS > Records, tìm bản ghi TXT bắt đầu bằng v=spf1 và thêm include:_spf.google.com vào trước ~all:
v=spf1 include:_spf.mx.cloudflare.net include:_spf.google.com ~allChú ý là sửa bản ghi đang có, không tạo thêm bản ghi SPF thứ hai, vì mỗi domain chỉ được có một bản ghi SPF.
Để kiểm tra, gửi thử một email từ [email protected] tới một tài khoản gmail khác, mở email đó, chọn Show original và xem dòng SPF có báo PASS hay không.
§4Kết quả
Bây giờ mình đã có email xịn xò để sử dụng [email protected]. Việc đọc email và gửi email sẽ được thực hiện bằng tài khoản gmail quen thuộc.
Bạn có thể thực hiện tương tự để tạo nhiều email custom ([email protected], [email protected], ..) cùng forward về một tài khoản gmail, hoặc về các tài khoản gmail khác nhau.
Một chút lưu ý khi gửi email đi là bạn sẽ cần xác định đúng tài khoản email dùng để gửi đi trong trường hợp bạn đã thêm nhiều tài khoản email. Gmail cũng có phần thiết lập này bạn có thể cài theo mục đích sử dụng của mình:
