Danh sách kiểm tra để xác minh gửi và phân phối thư thành công
Phần mềm sau sẽ cần thiết cho các bước kiểm tra tiếp theo:
-
Tiện ích host
- Debian/Ubuntu:
apt-get install bind9-host - CentOS:
yum install bind9-host
- Debian/Ubuntu:
-
Tiện ích telnet
- Debian/Ubuntu:
apt-get install telnet - CentOS:
yum install telnet
- Debian/Ubuntu:
Bản ghi MX
Bản ghi MX là một loại bản ghi DNS được thiết kế để đăng ký máy chủ thư sử dụng giao thức SMTP. Bản ghi này có trách nhiệm xác định máy chủ mà email phải được tác nhân thư của người gửi chuyển đến. Có thể có một số loại bản ghi với các mức ưu tiên khác nhau trên một miền.
Bạn có thể kiểm tra xem thư có hoạt động cục bộ hay sử dụng máy chủ thư của bên thứ ba bằng lệnh host:
host -t MX example.com
Khi làm việc với máy chủ thư cục bộ, đầu ra sẽ được hiển thị như sau:
thư của example.com được xử lý bởi 10 mail.example.com.
Cần lưu ý rằng mục mail.example.com cũng có thể trỏ đến một máy chủ khác. Ngoài ra, cần lưu ý rằng mail.example.com phải là một bản ghi A hiện có trỏ đến máy chủ mà bạn đang gửi thư từ đó.
Bạn cũng có thể chạy các lệnh này để kiểm tra:
host example.com
host mail.example.com
Và so sánh các địa chỉ IP mà miền chính, trong trường hợp này là example.com và mail.example.com, đang trỏ đến.
Cần thiết lập bản ghi MX để các máy chủ thư có thể nhận email của bạn.
Ví dụ về bản ghi MX:
Tên: example.com.
Loại: MX
Giá trị: mail.example.com.
Ưu tiên: 10
Chữ ký DKIM
Với sự trợ giúp của FASTPANEL®, có thể lấy chữ ký DKIM trong menu quản lý → phần "Mail" bằng cách nhấp vào "DKIM" trước miền thư cần thiết

Ở phía DNS, bản ghi phải được thêm như sau:
Tên: dkim._domainkey
Loại: TXT
Giá trị: v=DKIM1; k=rsa; p=public_key
Đây là ví dụ về bản ghi DKIM chính xác
dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB
Có thể tìm thêm thông tin về DKIM tại https://wikipedia.org/wiki/DomainKeys_Identified_Mail
Bản ghi SPF
Có thể kiểm tra sự hiện diện của bản ghi SPF bằng cách thực thi lệnh host. Trong trường hợp này, lệnh sẽ có dạng như sau:
host -t TXT example.com
Với đầu ra như sau:
văn bản mô tả example.com "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"
Lưu ý rằng ipv6 có thể không có trong mục này. Trong trường hợp này, chữ ký SPF sẽ có dạng:
văn bản mô tả example.com "v=spf1 ip4:ipv4_of_your_server a mx ~all"
Cần lưu ý rằng chỉ được có một bản ghi SFP
Ở phía DNS, bản ghi nên được thêm như sau:
Tên: example.com.
Type: TXT
Value:
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
hoặc (nếu không dùng ipv6)
v=spf1 ip4:ipv4_of_your_server a mx ~all
Ví dụ:
example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all
Có thể tìm thêm thông tin về SPF tại https://wikipedia.org/wiki/Sender_Policy_Framework
Bản ghi DMARC
Trong hầu hết các trường hợp, giá trị bản ghi DMARC sẽ giống nhau.
Ở phía DNS, bản ghi phải được thêm như sau:
Tên: _dmarc
Loại: TXT
Giá trị: v=DMARC1; p=none
Ví dụ:
_dmarc.example.com. TXT v=DMARC1; p=none
Có thể tìm thêm thông tin về DMARC tại https://wikipedia.org/wiki/DMARC
Bản ghi PTR và hostname của máy chủ
Bản ghi PTR là một bản ghi DNS ngược chuyển đổi địa chỉ IP thành tên. Mục đích chính của bản ghi này đối với máy chủ thư là loại bỏ phần lớn thư rác. Bản ghi này cho phép xác định tên của máy chủ mà e-mail được gửi đến từ đó. Phổ biến nhất là bản ghi PTR chứa tên miền được sử dụng trên máy chủ.
Bản ghi PTR liên kết một địa chỉ ip với một tên máy chủ. Nếu bản ghi PTR không được chỉ định đúng, thư của bạn sẽ bị từ chối và không đến được người nhận.
Hostname phải được chỉ định là tên của miền thực tế đang trỏ đến máy chủ, và PTR phải trỏ đến miền đó, miền này đến lượt nó trỏ đến máy chủ.
Ví dụ: bạn có miền example.com trên máy chủ của mình.
Bằng cách chạy lệnh:
host example.com
bạn có thể nhận được đầu ra:
example.com có địa chỉ 1.2.3.4
thư của example.com được xử lý bởi 10 mail.example.com.
Để tránh các vấn đề có thể xảy ra, nên đặt hostname và bản ghi PTR là một tên miền phụ cấp hai hiện có, ví dụ mail.example.com
Tính khả dụng của các cổng SMTP
Một số nhà cung cấp hosting chặn khả năng sử dụng các cổng được dùng để gửi hoặc nhận thư. Các cổng cho dịch vụ thư có thể là 25, 587, 465, 143 và 993.
Một trong những cách dễ nhất để kiểm tra tính khả dụng của các cổng này là sử dụng lệnh telnet.
Để kiểm tra kết nối đến từ máy chủ của bên thứ ba
Chạy lệnh:
telnet ip_adress port
Ví dụ: nếu bạn thử telnet tới cổng 25 tại 1.2.3.4, lệnh cần thực thi là:
telnet 1.2.3.4 25
Nếu kết nối thành công, bạn sẽ thấy đầu ra như sau:
Đang thử 1.2.3.4...
Đã kết nối tới 1.2.3.4.
Ký tự thoát là '^]'.
Nếu kết nối thất bại, đầu ra sẽ trông như sau:
Đang kết nối tới 1.2.3.4 ...
Không thể mở kết nối tới máy chủ trên cổng some_port: Kết nối thất bại
Hoặc:
telnet: Không thể kết nối tới máy chủ từ xa: Hết thời gian chờ kết nối
Đối với kết nối đi
Từ máy chủ của bạn, chạy lệnh:
telnet smtp.gmail.com 25
Nếu kết nối thành công, bạn sẽ thấy đầu ra như sau:
Đang thử 2a00:1450:4010:c0b::6c...
Đã kết nối tới smtp.gmail.com.
Ký tự thoát là '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp
Xin lưu ý rằng nếu bạn sử dụng cloud hosting và dùng cổng 25 cho máy chủ SMTP của mình, rất có thể nhà cung cấp hosting của bạn mặc định đang chặn các kết nối đi trên cổng 25. Bên dưới, bạn có thể xem các liên kết có hướng dẫn về cách giải quyết vấn đề này:
- AWS: Làm cách nào để xóa hạn chế trên cổng 25 khỏi phiên bản Amazon EC2 hoặc hàm AWS Lambda của tôi?
- Azure: Khắc phục sự cố kết nối SMTP đi trong Azure
- GCP: Gửi email từ một phiên bản
- DigitalOcean: Tại sao SMTP bị chặn?
Ngoài việc nhà cung cấp hosting của bạn chặn cổng, bạn cần kiểm tra xem các cổng trên máy chủ của mình có bị đóng hay không. Hãy lấy ví dụ về iptables, hoạt động như một tường lửa, khi sử dụng bảng điều khiển FASTPANEL. Lệnh để kiểm tra xem có quy tắc cho một cổng cụ thể hay không, trong trường hợp này là cổng 25, là:
iptables-save | grep 25
Nếu bạn không có quy tắc cho cổng muốn kiểm tra, sẽ không có thông tin nào được đưa ra. Nếu bạn thấy có một quy tắc chặn cổng của dịch vụ thư thì bạn cần xóa quy tắc này bằng lệnh:
iptables -D rule chain
Ví dụ: bạn đã chạy một lệnh và thấy như sau:
iptables-save | grep 25
-A INPUT -p tcp -m tcp --dport 25 -j DROP
Quy tắc này không cho phép bất kỳ truy cập nào vào máy chủ của bạn qua cổng 25, điều này sẽ ngăn việc gửi thư
Để xóa quy tắc, hãy sử dụng lệnh:
iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP
Ví dụ lệnh này cho phép bạn kiểm tra mọi cổng được dùng để gửi thư
Ảnh hưởng của IPv6 đến việc gửi thư
Nếu bạn cần sử dụng ipv6 cho các dịch vụ thư của mình, điều đầu tiên bạn cần làm là kiểm tra xem có bản ghi PTR cho ipv6 hay không và liệu các dịch vụ thư có đang lắng nghe trên ipv6 ở các cổng nhất định hay không.
Bạn có thể thực hiện việc kiểm tra bằng lệnh:
netstat -nltpp | grep tcp6
Kết quả đầu ra của lệnh này sẽ là danh sách tất cả các dịch vụ sử dụng ipv6, trong đó bạn c ó thể kiểm tra xem dịch vụ thư của mình có sử dụng địa chỉ này hay không. Thật không may, ngày nay việc sử dụng ipv6 có thể không hoạt động đúng ngay cả khi bạn đã thực hiện tất cả cài đặt chính xác.
Nếu bạn phát hiện qua việc kiểm tra nhật ký của dịch vụ thư rằng lỗi liên quan đến ipv6 và toàn bộ cấu hình đều chính xác, bạn có thể tắt việc sử dụng ipv6 cho dịch vụ thư.
Ví dụ về exim4, việc tắt ipv6 trông như sau:
-
Kiểm tra xem địa chỉ ipv6 có được sử dụng cho dịch vụ hay không bằng lệnh
netstat -nltp | grep exim
-
Trong tệp cấu hình
/etc/exim4/exim4.conf.template, dòng sau phải được thêm vào đầu tệp:disable_ipv6=true
-
Lưu các thay đổi trong tệp rồi khởi động lại dịch vụ bằng lệnh như sau:
systemctl restart exim4 -
Thực thi lệnh:
netstat -nltp | grep eximđể kiểm tra xem dịch vụ không còn trong danh sách nữa hay chưa
Kiểm tra việc gửi thư bằng các dịch vụ của bên thứ ba
Sau khi bạn đã kiểm tra tất cả các mục ở trên, bạn có thể kiểm tra việc gửi thư từ máy chủ của mình bằng các tài nguyên của bên thứ ba.
Một trong những dịch vụ thuận tiện và giàu thông tin nhất là https://www.mail-tester.com
Bằng cách sử dụng dịch vụ này, bạn có thể kiểm tra xếp hạng hiện tại của thư, nhận thông tin về việc bộ dữ liệu nêu trên có chính xác hay không, cũng như nhận được khuyến nghị để cải thiện xếp hạng.
Để thực hiện việc này, chỉ cần gửi một email đến địa chỉ được liệt kê trên trang web, sau đó nhấp vào "Then check your score".
