Ở một số dịch vụ cloud vps như google hoặc azure, amazon... Các vps đa phần đều bị chặn port 25, đây chính là nguyên nhân khiến cho ta không thể gửi mail sang các dịch vụ khác như gmail, yahoo được. Nếu ta cấu hình thay đổi port gửi mail thì đa phần các dịch vụ đó cũng không nhận được.
Chính vì thế, chúng ta sẽ cấu hình để exim gửi mail bằng port 587 đến một server trung gian như mailgun, sendgrid... (ở đây mình dùng sendgird).
Sau đây là cách cấu hình exim 4 trên centos 6.7:
Đầu tiên, ta cần vào sendgrid.com, đăng kí một account miễn phí. Ta sẽ sử dụng gói miễn phí của sendgird, tuy rằng là gói miễn phí nhưng vẫn đủ cho cá nhân hoặc một nhóm nhỏ sử dụng. Tham khảo thêm các gói cao cấp hơn tại: https://sendgrid.com/pricing
Tiếp theo, ta backup cấu hình cũ của exim để khi sai có thể restore lại:
cp /etc/exim/exim.conf /etc/exim/exim.conf-bkup
Mở file cấu hình của exim 4:
nano /etc/exim/exim.conf
Tìm:
host_lookup = *
Thêm dòng sau vào bên dưới:
auth_advertise_hosts = *
Tìm dòng:
begin authenticators
Thêm các dòng sau vào bên dưới:
sendgrid_login:
Driver = plaintext
public_name = login
client_send = : sendgridusername : sendgridpassword
* Trong đó: sendgridusername và sendgridpassword là username và password của account sendgrid mà ta đã đăng kí.
Tìm:
begin routers
Thêm các dòng sau vào bên dưới:
send_via_sendgrid:
Driver = manualroute
domains = ! +local_domains
transport = sendgrid_smtp
route_list = "* smtp.sendgrid.net::587 byname"
host_find_failed = defer
no_more
Tìm:
begin transports
Thêm vào bên dưới:
sendgrid_smtp:
Driver = smtp
hosts = smtp.sendgrid.net
hosts_require_auth = smtp.sendgrid.net
hosts_require_tls = smtp.sendgrid.net
Save lại và khởi động lại exim bằng lệnh:
/etc/init.d/exim restart
Sau khi cấu hình xong, exim đã có thể gửi mail ra ngoài thông qua sendgrid. Khi check mail ta sẽ nhận được email có dạng như sau: