Gửi email sử dụng nhiều tài khoản SMTP với Exim

Chào các bạn,

Trong bài viết “Hướng dẫn cấu hình Gmail SMTP Replay cho Exim“, các bạn đã được hướng dẫn để cấu hình gửi email sử dụng tài khoản SMTP, tuy nhiên việc cấu hình như vậy chỉ cho phép cấu hình 1 tài khoản SMTP duy nhất và sử dụng để gửi mail cho toàn bộ hệ thống. Vấn đề là nếu như bạn muốn gửi email từ nhiều tài khoản SMTP khác nhau thì làm thế nào? Bài viết này sẽ giúp bạn giải quyết vấn đề này.

Ví dụ như bạn chỉ dùng Gmail chẳng hạn và bạn có 10 tài khoản, bạn muốn mỗi tài khoản sẽ chịu trách nhiệm gửi email cho một đối tượng người nhận khác nhau …v.v

Vẫn cấu hình như cũ, mở file /etc/exim.conf

begin routers

Thêm vào bên dưới nội dung sau:

send_via_gmail:
 driver = manualroute
 domains = ! +local_domains
 transport = gmail_smtp
 route_list = * smtp.gmail.com

begin transports

Thêm vào bên dưới nội dung sau:

gmail_smtp:
 driver = smtp
 port = 587
 hosts_require_auth = *
 hosts_require_tls = *

Tại phần “authenticators” sẽ khác 1 chút

begin authenticators

gmail_login:
driver = plaintext
public_name = LOGIN
hide client_send = ${extract{user}{${lookup{$sender_address}lsearch{/etc/accounts_gmail}}}} : ${extract{pass}{${lookup{$sender_address}lsearch{/etc/accounts_gmail}}}}

Tiếp theo ta tạo 1 file /etc/accounts_gmail và điền thông tin theo format sau

[sender]:    user=[your_user_name]    pass=[Application Password/SMTP Password]

Cách thức hoạt động như sau, Exim sẽ sử dụng tài khoản SMTP trong file /etc/accounts_gmail dựa trên $sender_address của email đó. Ví dụ như gửi email bằng tài khoản root của máy chủ:

echo "Email sent from Root" |  sendmail -f "root" [recipient_address]

Như vậy trong file/etc/accounts_gmail, các bạn thay thế [sender] = root@[your_local_hostname]

 

Rate This Article

Leave A Comment?