Bài viết này giả định rằng bạn sẽ sử dụng Ubuntu Server 20.04 hoặc 24.04.
Động lực
Sendmail nổi tiếng với độ tin cậy cao, chính vì vậy nó là Mail Transfer Agent (MTA) được WordOps ưu tiên lựa chọn. Tuy nhiên, việc cấu hình Sendmail, đặc biệt là trong các tác vụ như xác thực, mã hóa và biên dịch, có thể khá phức tạp, ngay cả đối với những quản trị viên hệ thống giàu kinh nghiệm. Nhưng đừng lo lắng! Với sự hiểu biết rõ ràng và từng bước một, các quy trình này thực sự có thể được xử lý một cách dễ dàng. Hãy cùng tìm hiểu cách làm chủ quá trình cài đặt này!
Các lựa chọn thay thế
Nếu bạn muốn thay thế Sendmail, có thể là để chuyển sang một giải pháp đơn giản hơn, các lựa chọn như Postfix, SSMTP hoặc Nullmailer đều là những sự lựa chọn tuyệt vời. Tuy nhiên, nếu bạn chỉ cần gửi email qua WordPress và bỏ qua tất cả thông tin hữu ích từ máy chủ của mình, FluentSMTP có lẽ là lựa chọn tốt nhất. Xin lưu ý rằng nếu bạn vẫn cần một plugin SMTP trên trang web của mình, ví dụ như để thực hiện chức năng ghi nhật ký, chúng tôi vẫn có thể cài đặt nó dù nó đã được cấu hình sẵn trên máy chủ.
Cài đặt Sendmail
Sendmail là một phần của WordOps Stack và có thể được cài đặt dễ dàng bằng cách:
wo stack install --sendmail
sudo apt install libsasl2-modules
Bạn cũng có thể cài đặt nó trên Ubuntu bằng APT:
sudo apt update
sudo apt install sendmail
sudo apt install libsasl2-modules
Cài đặt các công cụ thư điện tử điều này không phải là yêu cầu bắt buộc nhưng sẽ giúp sendmail tương thích tốt hơn trên hệ thống của bạn:
sudo apt install mailutils
Tạo tệp xác thực
Tạo một tệp mới để lưu trữ thông tin xác thực trong /etc/mail/authinfo, và thêm dòng sau vào tệp, thay thế TÊN_NGƯỜI_DÙNG_CỦA_BẠN Và MÃ_API_CỦA_BẠN bằng thông tin đăng nhập thực tế của nhà cung cấp dịch vụ email giao dịch của bạn (với một số nhà cung cấp, một mã thông báo duy nhất có thể được sử dụng làm cả tên người dùng và mật khẩu):
AuthInfo:smtp.nhà_cung_cấp_email_của_bạn.com "U:TÊN_NGƯỜI_DÙNG_CỦA_BẠN" "P:KHÓA_API_CỦA_BẠN"
Không cần thiết phải thiết lập loại xác thực vì Sendmail sẽ luôn ưu tiên chọn phương thức an toàn nhất trước tiên, mà chúng ta sẽ định nghĩa sau đây là STARTLS.
Cấu hình Sendmail để sử dụng nhà cung cấp SMTP của bạn
Mở tệp cấu hình Sendmail nằm tại /etc/mail/sendmail.mc. Trước tiên, hãy sửa dòng sau để thiết lập tên miền mà bạn muốn sử dụng cho các email gửi đi, bằng cách thay thế yourdomain.com với tên miền thực tế của bạn:
Ubuntu 20.04
MASQUERADE_AS(`yourdomain.com')dnl
Ubuntu 24.04
Trong các phiên bản mới hơn, Sendmail đã loại bỏ toàn bộ các thiết lập masquerade, do đó bạn cần thêm tất cả các thiết lập cần thiết như sau:
MASQUERADE_AS(`yourdomain.com')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`masquerade_entire_domain')dnl
Sau đó (trên bất kỳ phiên bản nào), hãy thêm các dòng sau vào tệp cấu hình để thiết lập Sendmail sử dụng nhà cung cấp của bạn làm máy chủ trung gian SMTP, ngay sau ĐỊNH NGHĨA MAILER, thay thế smtp.nhà_cung_cấp_dịch_vụ_email_của_bạn.com với URL SMTP thực tế của nhà cung cấp dịch vụ email giao dịch của bạn:
define(`SMART_HOST',`[smtp.postmarkapp.com]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl
Tạo tệp cơ sở dữ liệu
Sau khi lưu thông tin xác thực tệp, tạo tệp cơ sở dữ liệu mà Sendmail sẽ sử dụng:
sudo makemap hash /etc/mail/authinfo < /etc/mail/authinfo
Cấu hình lại Sendmail
Sendmail cần biên dịch tất cả các macro mà nó cần sử dụng, bao gồm cả những macro trong tệp mà chúng ta đã chỉnh sửa trước đó. Quá trình biên dịch sẽ thất bại nếu có bất kỳ lỗi cú pháp nào, vì vậy hãy kiểm tra kỹ lưỡng nhiều lần rồi mới chạy lệnh:
sudo m4 /etc/mail/sendmail.mc | sudo tee /etc/mail/sendmail.cf
Khởi động lại Sendmail
Khởi động lại dịch vụ Sendmail để áp dụng các thay đổi:
sudo service sendmail reload
Thử gửi email
Bạn có thể kiểm tra cấu hình Sendmail bằng cách gửi một email thử nghiệm, nhưng một số nhà cung cấp có thể yêu cầu cả tiêu đề lẫn nội dung email, vì vậy trước tiên chúng ta hãy tạo một tệp có tên là test_email.txt với nội dung sau:
Tiêu đề: Gửi email từ Terminal
Nội dung email dòng 1
Nội dung email dòng 2
Bây giờ, hãy gửi một email dựa trên tệp của chúng tôi:
sendmail trả lời*******@*****le.com < test_email.txt
Thay thế trả lời*******@*****le.com bằng địa chỉ email thực của bạn.
Tài nguyên:
- https://docs.wordops.net/how-to/setup-sendmail-with-sendgrid/
- https://postmarkapp.com/support/article/792-is-sendmail-configurable-through-postmark
- https://sourcedaddy.com/networking/modifying-sendmail-mc.html
- https://stackoverflow.com/questions/57410259/how-to-send-an-email-using-sendmail-command-in-linux
Để lại một bình luận