Cấu hình Email Relay trên WHM/cPanel

by admincp
13 Xem

I. Mail Relay là gì?

Email Relay được định nghĩa theo từng ý như sau:

  • Email là thư điện tử.
  • Relay là chuyển tiếp.

Hoặc dễ hiểu hơn thì Email Relay là dịch vụ chuyển tiếp email. Email Relay còn gọi là SMTP Relay, là dịch vụ cho phép người khác dùng chương trình email kiên kết. Bạn có thể dùng Email Server của bạn để gửi email (người này có thể không có tài khoản mail trong mail server của bạn)

II. Đăng ký và thiết lập Mail Relay

Hiện có rất nhiều đơn vị cung cấp Mail Relay uy tín, và trong bài viết này mình chọn smtp2go để đăng ký dịch vụ mail relay miễn phí. Trong gói miễn phí này hỗ trợ:

Và để đăng ký bạn có thể truy cập vào trang chủ của smtp2go, sau đó tạo tài khoản và sử dụng.

Khi tài khoản đã được kích hoạt sử dụng bạn chọn Settings => Sender Domains => Add Domain => Nhập vào domain và chọn Continue with this domain

Sau đó thực hiện các bước theo hướng dẫn của smtp2go.

III. Cấu hình Email Relay trên WHM/cPanel

Bước 1: Mở cấu hình Exim

Bạn truy cập Home WHM => Service Configuration => Exim Configuration Manager => Advanced Editor

anh 9

Bước 2: Cấu hình thông số Relay

Tìm nhập thông tin trong mục Section: AUTH. Và thực hiện thay

  • UserRelay: User đã tạo dùng để relay
  • PasswdRelay: Mật khẩu của User
mail_login:
driver = plaintext
public_name = LOGIN
client_send = :UserRelay:PasswdRelay
CleanShot 2022 10 15 at 20.35.31@2x

Tìm nhập thông tin trong mục Section: POSTMAILCOUNT hoặc Section: ROUTERSTART (Lưu ý không cấu hình cả 2).

remoteserver_route:
driver = manualroute
transport = mail_smtp
domains = !+local_domains
route_list = * mail.smtp2go.com::587 randomize byname
CleanShot 2022 10 15 at 20.36.29@2x

Tìm nhập thông tin trong mục Section: TRANSPORTSTART

mail_smtp:
driver = smtp
hosts_require_auth = *
tls_tempfail_tryclear = true
headers_add = X-AuthUser: ${if match {$authenticated_id}{.*@.*}\
{$authenticated_id} {${if match {$authenticated_id}{.+}\
{$authenticated_id@$primary_hostname}{$authenticated_id}}}}
CleanShot 2022 10 15 at 09.17.21
anh 11

Sau khi add đầy đủ các thông tin các bạn Save lại nội dung cập nhật, nếu máy chủ Exim reset thành công là các bạn đã cấu hình xong Email Relay và có thể kiểm tra lại gửi nhận email qua hệ thống Relay.

Bước 3: Kiểm tra mail gửi ra

Bây giờ sẽ thực hiện gửi mail để kiểm tra xem thử đã hoạt động hay chưa. Bằng cách soạn một mail và gửi ra ngoài Gmail thử. Kết quả là mail đã gửi được vào inbox.

anh 14

Bây giờ bạn hãy check header bằng cách nhấn vào dấu 3 chấm và chọn Hiển thị thư gốc.

anh 12

Bạn tìm đến dòng Received sẽ thấy máy chủ đi qua Relay. Như vậy đã hoàn tất bước cấu hình.

anh 13

Bươc 4: Cấu hình Exim nâng cao (Không bắt buộc)

  • Cấu hình danh sách gửi thư X-Header

Nếu bạn đã thiết lập danh sách gửi thư trong môi trường cPanel của mình, bạn cần bật X-MC-MailingList headers để cho phép hệ thống xác định tài khoản gửi.

Các bạn chỉnh sửa file exim.conf trong /etc/exim.conf, thêm dòng sau vào phần mailman_virtual_transport là được.

headers_add = "X-MC-MailingList: $original_local_part@$original_domain\n"
CleanShot 2022 10 15 at 09.32.08

Cấu hình cho một email tên miền hoặc một người dùng cụ thể được gửi thư qua hệ thống Relay

  • Cấu hình cho phép một tên miền
senders = *@mydomain.com
  • Cấu hình cho phép một người dùng
senders = user@mydoamin.com
  • Chặn một tên miền, không cho phép gửi mail qua hệ thống Relay

Thêm dòng sau vào cấu hình mục Section: ROUTERSTART

senders = !*@mydomain1.com :  !*@mydomain2.com

Cấu hình

send_via_mail:
driver = manualroute
domains = ! +local_domains
senders = !*@mydomain1.com :  !*@mydomain2.com
transport = mail_smtp
route_list = "* mail.smtp2go.com::587 byname"
host_find_failed = defer
no_more
CleanShot 2022 10 15 at 10.13.53
  • Cấu hình chặn gửi thư đến một số tên miền nhất định.

Thêm cấu hình vào mục Section: ROUTERSTART

domains = ! receivingdomain.com: +local_domains

Cấu hình

send_via_mail:
driver = manualroute
domains = ! recevingdomain.com : ! +local_domains
senders = !*@mydomain1.com : !*@mydomain2.com
transport = mail_smtp
route_list = "* mail.smtp2go.com::25 byname"
host_find_failed = defer
no_more
CleanShot 2022 10 15 at 10.16.43

Bước 5: Tối ưu hoá Exim

  • Thay đổi khoảng thời gian thử lại.
Under section: RETRYSTART
* data_4xx F,4h,1m
* rcpt_4xx F,4h,1m
* timeout F,4h,1m
* refused F,1h,5m
* lost_connection F,1h,1m
* * F,6h,5m
  • Xóa bỏ thư rác trong hàng đợi theo chu kỳ.

Chỉnh sửa file /etc/crontab và thêm cấu hình xóa Exim retry trong ngày.

25 5 * * * root /usr/sbin/exim_tidydb -t 1d /var/spool/exim retry
35 5 * * * root /usr/sbin/exim_tidydb -t 1d /var/spool/exim wait-remote_smtp
  • Cấu hình hàng đợi Exim

Thay đổi số lượng User chạy trong hàng đợi. Chỉnh sửa file /etc/default/exim hoặc cập nhật /etc/sysconfig/exim giá trị

QUEUE= 60s

Thay đổi số lượng User tối đa tồn tại đồng thời trong hàng đợi trong /etc/exim.conf

queue_run_max = 50
  • Khởi động lại Exim
Service exim restart
  • Set “timeout_frozen_after” to 12 hours
Type: time
Default: 0s

Nếu timeout_frozen_ after được đặt thành thời gian lớn hơn 0, thì thông báo cố định của bất kỳ mô tả nào đã ở trên hàng đợi lâu hơn thời gian nhất định sẽ tự động bị hủy ở lần chạy hàng tiếp theo. Nếu đó là một tin nhắn bị trả lại, nó chỉ bị loại bỏ; nếu không, một thư bị trả lại sẽ được gửi đến người gửi, theo cách tương tự như việc hủy bằng tùy chọn dòng lệnh -Mg.

  • Set “ignore_bounce_errors_after” parameter to 1 hour

Lựa chọn này ảnh hưởng đến việc xử lý các thư trả lại không thể gửi được, tức là những thư lỗi bị lỗi gửi vĩnh viễn và sẽ gửi lại theo cách thông thường.

Bài viết liên quan

Leave a Comment