Nếu bạn có tài khoản Gmail, bạn có thể cấu hình MTA của mình để chuyển tiếp thư đi qua Gmail. Điều này mang lại cho bạn lợi ích về độ tin cậy và cơ sở hạ tầng mạnh mẽ của Gmail, đồng thời cung cấp cho bạn phương tiện đơn giản để gửi email từ dòng lệnh.
Trong hướng dẫn này, chúng ta sẽ sử dụng Postfix làm MTA của mình. Postfix là một tác nhân chuyển thư miễn phí, mã nguồn mở, được bảo trì tích cực và có tính bảo mật cao.
Ở mỗi bước, chúng tôi sẽ đề cập đến các hướng dẫn cụ thể cho các hệ điều hành sau:
Tất cả các lệnh bắt đầu bằng # yêu cầu quyền root.
Khi được nhắc nhập "Kiểu chung của cấu hình thư", hãy chọn Internet Site.
Khi được nhắc nhập "Mail name", hãy chọn tên máy chủ để sử dụng trong tiêu đề thư làm nguồn gốc của email. Nên sử dụng tên miền đủ điều kiện, nhưng sử dụng tên máy chủ đơn giản của máy bạn cũng được. Bất kể bạn nhập gì ở đây, địa chỉ trả lời của bạn sẽ hiển thị với người nhận là địa chỉ Gmail của bạn.
Bạn có thể được nhắc đặt "Người nhận thư gốc và postmaster". Nhập root hoặc người dùng khác sẽ nhận được thông báo hệ thống con thư.
Đối với bất kỳ lời nhắc nào khác, bạn có thể chọn các giá trị mặc định.
Fedora:
CentOS:
OpenSUSE:
Arch Linux:
FreeBSD:
Biên dịch Postfix từ bộ sưu tập cổng để kết hợp hỗ trợ cho SASL:
Trong hộp thoại cấu hình, chọn Hỗ trợ SASL. Tất cả các tùy chọn khác có thể giữ nguyên. Sau đó:
Mailx có thể được cài đặt từ gói nhị phân:
Tệp mật khẩu sẽ nằm trong thư mục cấu hình Postfix. Tệp có thể được đặt tên tùy ý, nhưng tên tệp được đề xuất là sasl_passwd.
Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
Các tệp cấu hình Postfix nằm trong thư mục /etc/postfix. Tạo hoặc chỉnh sửa tệp mật khẩu:
Thêm dòng:
Lưu và đóng tệp. Mật khẩu Gmail của bạn được lưu trữ dưới dạng văn bản thuần túy, vì vậy hãy chỉ cho phép root truy cập tệp:
FreeBSD:
Các tệp cấu hình Postfix nằm trong thư mục /usr/local/etc/postfix. Tạo hoặc chỉnh sửa tệp mật khẩu:
Thêm dòng:
Lưu và đóng tệp. Chỉ cho phép root truy cập tệp:
relayhost, chỉ định máy chủ chuyển tiếp thư và số cổng. Tên máy chủ sẽ được đặt trong dấu ngoặc vuông để chỉ định rằng không cần tra cứu MX.
smtp_use_tls, cho phép (hoặc vô hiệu hóa) bảo mật lớp truyền tải.
smtp_sasl_auth_enable, cho phép (hoặc vô hiệu hóa) xác thực SASL.
smtp_sasl_security_options, trong cấu hình sau sẽ được đặt thành trống, để đảm bảo không có tùy chọn bảo mật nào không tương thích với Gmail được sử dụng.
smtp_sasl_password_maps, chỉ định tệp mật khẩu sẽ sử dụng. Tệp này sẽ được biên dịch và băm bởi postmap ở bước sau.
smtp_tls_CAfile, tệp này chỉ định danh sách các cơ quan cấp chứng chỉ sẽ sử dụng khi xác minh danh tính máy chủ.
Debian, Ubuntu, Arch Linux:
Chỉnh sửa tệp cấu hình Postfix chính:
Thêm hoặc sửa đổi các giá trị sau:
Lưu và đóng tệp.
Fedora, CentOS:
Chỉnh sửa tệp cấu hình Postfix chính:
Thêm hoặc sửa đổi các giá trị sau:
Lưu và đóng tệp.
OpenSUSE:
Chỉnh sửa tệp cấu hình Postfix chính:
Thêm hoặc sửa đổi các giá trị sau:
Lưu và đóng tệp.
OpenSUSE cũng yêu cầu tệp cấu hình quy trình chính Postfix master.cf phải được sửa đổi. Mở nó để chỉnh sửa:
Xác định vị trí dòng có nội dung:
Bỏ chú thích để có nội dung:
Lưu và đóng tệp.
FreeBSD:
Chỉnh sửa tệp cấu hình Postfix chính:
Thêm hoặc sửa đổi các giá trị sau:
Lưu và đóng tệp.
Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
FreeBSD:
Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
FreeBSD:
Để khởi động dịch vụ Postfix chỉ cho phiên này:
Để tự động khởi động Postfix khi hệ thống khởi tạo, hãy mở /etc/rc.conf để chỉnh sửa:
Thêm dòng:
Lưu và đóng tệp. Sau đó, bạn có thể chạy:
Để khởi động Postfix.
Để biết thêm thông tin, hãy xem tài liệu Hỗ trợ của Google "Cho phép ứng dụng kém an toàn truy cập vào tài khoản của bạn."
Bạn sẽ thấy một dòng trống (hoặc trường CC:, bạn có thể bỏ qua bằng cách nhấn Enter). Nhập nội dung tin nhắn của bạn, nhấn Enter để xuống dòng. Khi bạn soạn xong email, hãy nhập CTRL-D để gửi. Để hủy email, hãy nhấn CTRL-C hai lần.
Để gửi email đã soạn sẵn, hãy sử dụng lệnh:
Trong đó textfile là tên của tệp chứa văn bản cần gửi.
Debian:
Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
FreeBSD:
Nếu bạn nhận được lỗi xác thực từ Gmail, hãy xác minh rằng Cho phép ứng dụng ít an toàn hơn được bật trong cài đặt tài khoản Gmail của bạn, như đã chỉ định trong Bước 6.
Xác minh rằng tệp mật khẩu sasl_passwd tồn tại và nội dung của tệp đó là được định dạng đúng, như đã chỉ định trong Bước 2. Nếu bạn thực hiện bất kỳ thay đổi nào đối với tệp mật khẩu, hãy đảm bảo lặp lại Bước 4 và 5 để băm tệp mật khẩu mới và khởi động lại Postfix.
Nếu bạn thấy bất kỳ lỗi TLS nào, hãy kiểm tra lại cấu hình trong main.cf như đã chỉ định trong Bước 3. Nếu bạn thực hiện bất kỳ thay đổi cấu hình nào, hãy khởi động lại Postfix như đã chỉ định trong Bước 5.
Trong hướng dẫn này, chúng ta sẽ sử dụng Postfix làm MTA của mình. Postfix là một tác nhân chuyển thư miễn phí, mã nguồn mở, được bảo trì tích cực và có tính bảo mật cao.
Ở mỗi bước, chúng tôi sẽ đề cập đến các hướng dẫn cụ thể cho các hệ điều hành sau:
- Debian 9
- Ubuntu18.04 LTS
- CentOS 7
- OpenSUSELeap 15.0
- Arch Linux 2019.03.01
- FreeBSD 12.0
Tất cả các lệnh bắt đầu bằng # yêu cầu quyền root.
1. Cài đặt phần mềm cần thiết
Debian, Ubuntu:
Mã:
apt-get update && apt-get install postfix mailutils
Khi được nhắc nhập "Mail name", hãy chọn tên máy chủ để sử dụng trong tiêu đề thư làm nguồn gốc của email. Nên sử dụng tên miền đủ điều kiện, nhưng sử dụng tên máy chủ đơn giản của máy bạn cũng được. Bất kể bạn nhập gì ở đây, địa chỉ trả lời của bạn sẽ hiển thị với người nhận là địa chỉ Gmail của bạn.
Bạn có thể được nhắc đặt "Người nhận thư gốc và postmaster". Nhập root hoặc người dùng khác sẽ nhận được thông báo hệ thống con thư.
Đối với bất kỳ lời nhắc nào khác, bạn có thể chọn các giá trị mặc định.
Fedora:
Mã:
dnf update && dnf install postfix mailx
Mã:
yum update && yum install postfix mailx cyrus-sasl cyrus-sasl-plain
Mã:
zypper update && zypper install postfix mailx cyrus-sasl
Mã:
pacman -Sy postfix mailutils
Biên dịch Postfix từ bộ sưu tập cổng để kết hợp hỗ trợ cho SASL:
Mã:
portsnap fetch extract update
Mã:
cd /usr/ports/mail/postfix
Mã:
make config
Mã:
make install clean
Mã:
pkg install mailx
2. Cấu hình Xác thực Gmail
Tạo hoặc sửa đổi tệp mật khẩu sẽ được Postfix sử dụng để thiết lập xác thực với Gmail. Trong thông tin xác thực bên dưới, hãy thay thế username bằng tên người dùng Gmail của bạn và password bằng mật khẩu Gmail của bạn. Nếu bạn đang sử dụng tên miền Gmail Apps tùy chỉnh, bạn có thể thay thế gmail.com bằng tên miền Google Apps của mình.Tệp mật khẩu sẽ nằm trong thư mục cấu hình Postfix. Tệp có thể được đặt tên tùy ý, nhưng tên tệp được đề xuất là sasl_passwd.
Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
Các tệp cấu hình Postfix nằm trong thư mục /etc/postfix. Tạo hoặc chỉnh sửa tệp mật khẩu:
Mã:
nano /etc/postfix/sasl_passwd
Mã:
[smtp.gmail.com]:587 [emailprotected]:password
Mã:
chmod 600 /etc/postfix/sasl_passwd
Các tệp cấu hình Postfix nằm trong thư mục /usr/local/etc/postfix. Tạo hoặc chỉnh sửa tệp mật khẩu:
Mã:
nano /usr/local/etc/postfix/sasl_passwd
Mã:
[smtp.gmail.com]:587 [emailprotected]:password
Mã:
chmod 600 /usr/local/etc/postfix/sasl_passwd
3. Cấu hình Postfix
Có sáu tham số phải được thiết lập trong tệp cấu hình Postfix main.cf. Các tham số là:relayhost, chỉ định máy chủ chuyển tiếp thư và số cổng. Tên máy chủ sẽ được đặt trong dấu ngoặc vuông để chỉ định rằng không cần tra cứu MX.
smtp_use_tls, cho phép (hoặc vô hiệu hóa) bảo mật lớp truyền tải.
smtp_sasl_auth_enable, cho phép (hoặc vô hiệu hóa) xác thực SASL.
smtp_sasl_security_options, trong cấu hình sau sẽ được đặt thành trống, để đảm bảo không có tùy chọn bảo mật nào không tương thích với Gmail được sử dụng.
smtp_sasl_password_maps, chỉ định tệp mật khẩu sẽ sử dụng. Tệp này sẽ được biên dịch và băm bởi postmap ở bước sau.
smtp_tls_CAfile, tệp này chỉ định danh sách các cơ quan cấp chứng chỉ sẽ sử dụng khi xác minh danh tính máy chủ.
Debian, Ubuntu, Arch Linux:
Chỉnh sửa tệp cấu hình Postfix chính:
Mã:
nano /etc/postfix/main.cf
Mã:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = băm:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Fedora, CentOS:
Chỉnh sửa tệp cấu hình Postfix chính:
Mã:
nano /etc/postfix/main.cf
Mã:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
OpenSUSE:
Chỉnh sửa tệp cấu hình Postfix chính:
Mã:
nano /etc/postfix/main.cf
Mã:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
OpenSUSE cũng yêu cầu tệp cấu hình quy trình chính Postfix master.cf phải được sửa đổi. Mở nó để chỉnh sửa:
Mã:
nano /etc/postfix/master.cf
Mã:
#tlsmgr unix - - n 1000? 1 tlsmg
Mã:
tlsmgr unix - - n 1000? 1 tlsmg
FreeBSD:
Chỉnh sửa tệp cấu hình Postfix chính:
Mã:
nano /usr/local/etc/postfix/main.cf
Mã:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/mail/certs/cacert.pem
4. Xử lý tệp mật khẩu
Sử dụng postmap để biên dịch và băm nội dung của sasl_passwd. Kết quả sẽ được lưu trữ trong thư mục cấu hình Postfix của bạn trong tệp sasl_passwd.db.Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
Mã:
postmap /etc/postfix/sasl_passwd
Mã:
postmap /usr/local/etc/postfix/sasl_passwd
5. Khởi động lại Postfix
Khởi động lại dịch vụ Postfix, áp dụng các thay đổi của bạn.Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
Mã:
systemctl restart postfix.service
Để khởi động dịch vụ Postfix chỉ cho phiên này:
Mã:
service postfix onestart
Mã:
nano /etc/rc.conf
Mã:
postfix_enable=YES
Mã:
service postfix start
6. Bật "Ứng dụng kém an toàn" trong Gmail
Theo mặc định, chỉ những lần đăng nhập an toàn nhất, chẳng hạn như đăng nhập vào Gmail trên web, mới được phép đối với tài khoản Gmail của bạn. Để cho phép yêu cầu chuyển tiếp, hãy đăng nhập vào tài khoản Gmail của bạn và bật Cho phép ứng dụng kém an toàn.Để biết thêm thông tin, hãy xem tài liệu Hỗ trợ của Google "Cho phép ứng dụng kém an toàn truy cập vào tài khoản của bạn."
7. Gửi email thử nghiệm
Kiểm tra cấu hình mới của bạn bằng cách gửi email bằng lệnh mail. Chạy:
Mã:
mail -s "Đối tượng thử nghiệm" [emailprotected]
Để gửi email đã soạn sẵn, hãy sử dụng lệnh:
Mã:
mail -s "Subject Here" [emailprotected] < textfile
Khắc phục sự cố
Nếu không hoạt động, hãy kiểm tra nhật ký để tìm lỗi Postfix:Debian:
Mã:
less /var/log/mail.log
Mã:
journalctl
Mã:
less /var/log/maillog
Xác minh rằng tệp mật khẩu sasl_passwd tồn tại và nội dung của tệp đó là được định dạng đúng, như đã chỉ định trong Bước 2. Nếu bạn thực hiện bất kỳ thay đổi nào đối với tệp mật khẩu, hãy đảm bảo lặp lại Bước 4 và 5 để băm tệp mật khẩu mới và khởi động lại Postfix.
Nếu bạn thấy bất kỳ lỗi TLS nào, hãy kiểm tra lại cấu hình trong main.cf như đã chỉ định trong Bước 3. Nếu bạn thực hiện bất kỳ thay đổi cấu hình nào, hãy khởi động lại Postfix như đã chỉ định trong Bước 5.