Có ai cần phải thiết lập một máy chủ thư trước khi có thể sử dụng mail
lệnh linux không?
Có ai cần phải thiết lập một máy chủ thư trước khi có thể sử dụng mail
lệnh linux không?
Câu trả lời:
Không, bạn không yêu cầu một máy chủ thư để gửi thư. Tôi quen thuộc nhất với Sendmail và có 3 phân loại chức năng đáp ứng email dưới dạng dịch vụ. MDA (Đại lý chuyển phát thư) là 1 và MTA (Đại lý chuyển thư) là 2 và 3 là MUA (Đại lý người dùng thư).
Thuật ngữ gây nhầm lẫn nhưng bạn không yêu cầu MTA phải chạy mọi lúc. MTA sẽ được gọi mỗi lần MUA ( mail
) muốn "gửi" thư.
Khi bạn chạy mail
và bạn chỉ định một địa chỉ để gửi thư tới sam@example.com
. Ứng dụng thư khách sẽ triệu tập MTA ( /usr/bin/sendmail
) sau đó sẽ truy vấn DNS cho máy chủ / tên miền đó (example.com) và tìm ra giá trị nào được chỉ định cho bản ghi MX của nó. MX là viết tắt của Mail Exchanger.
Bạn có thể sử dụng dig
lệnh để xem điều này:
$ dig gnu.org mx
; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;gnu.org. IN MX
;; ANSWER SECTION:
gnu.org. 299 IN MX 10 eggs.gnu.org.
;; ADDITIONAL SECTION:
eggs.gnu.org. 299 IN A 208.118.235.92
eggs.gnu.org. 299 IN AAAA 2001:4830:134:3::10
;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:27:22 2013
;; MSG SIZE rcvd: 90
Vì vậy, khách hàng sẽ cố gắng kết nối với egg.gnu.org trên cổng 25 để gửi email này.
@puk hỏi câu hỏi tiếp theo sau:
Đây có phải là DNS trên máy cục bộ của tôi không?
Tôi đã trả lời:
@puk - nó có thể giống như cách mà máy chủ thư có thể, nhưng thông thường thì không. Nhìn vào /etc/resolv.conf
tệp của bạn và cả khi bạn chạy dig
lệnh, bạn sẽ nhận thấy SERVER: ...
dòng ở phía dưới. Đó là máy chủ DNS phục vụ yêu cầu của bạn.
/etc/resolv.conf
Tập tin của tôi chứa như sau:
nameserver 192.168.1.8
Và các truy vấn như cái này, sử dụng dig
:
$ dig gnu.org mx
Kết quả trong này ở phía dưới:
;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:46:13 2013
;; MSG SIZE rcvd: 90
Và đối với người đọc sắc sảo, một câu hỏi của tôi, cái này được cấu hình như thế nào? Câu trả lời là /etc/nsswitch.conf
tập tin. Cụ thể dòng này:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Điều đó nói rằng, sử dụng các tập tin đầu tiên ( /etc/hosts
), tiếp theo là mdns4_minimal
. Đó là một DNS đa hướng. Về cơ bản, nó là một bộ đệm của các tra cứu trước đó. Cuối cùng, nó sử dụng dns
địa chỉ IP của tệp nameserver
được chỉ định trong /etc/resolv.conf
tệp.
Nó thực sự phụ thuộc vào phiên bản của mail
bạn đang sử dụng.
Tất cả các phiên bản đều cần MTA để gửi thư thực sự, nhưng một số phiên bản có khả năng sử dụng SMTP để nói chuyện với MTA từ xa ("smarthost", ví dụ: máy chủ thư của ISP) và một số chỉ có thể chuyển thư /usr/sbin/sendmail
để gửi thư qua một MTA địa phương.
Trong trường hợp sau, MTA cục bộ có thể là một MTA chính thức như sendmail hoặc exim hoặc postfix . Hoặc nó có thể là một MTA chỉ gửi đơn giản như nullmailer hoặc ssmtp . Hoặc một MTA mini tinh vi hơn một chút như msmtp cũng hỗ trợ xếp hàng thư để gửi sau.
Trong thế giới Phần mềm Tự do & Nguồn mở, có hai biến thể chính của mailx
gói (cung cấp mail
lệnh): bsd-mailx
và heirloom-mailx
.
bsd-mailx không nói được SMTP và chỉ có thể gửi thư bằng cách chuyển nó tới/usr/sbin/sendmail
hierloom-mailx có thể nói SMTP với smarthost cũng như phương thức 'pipe-to-sendmail' truyền thống.
Vì vậy, để trả lời câu hỏi của bạn "Bạn có cần một máy chủ thư không?". Ừ kiểu vậy, chắc vậy. Bạn cần một cái, nhưng tùy thuộc vào phiên bản thư bạn đã cài đặt, bạn có thể không phải cài đặt và định cấu hình nó trên hệ thống của riêng bạn.
IMO, bạn tốt hơn với một MTA tối thiểu như msmtp
chỉ dựa vào smarthost heirloom-mailx
vì bạn vẫn cần xếp hàng thư để gửi sau khi kết nối internet của bạn không hoạt động hoặc smarthost của bạn không thể truy cập được. Với một hàng đợi địa phương, mail
và crond
các chương trình khác chỉ có thể gửi-và-quên bất kỳ thư. Không có hàng đợi cục bộ, họ phải xử lý bằng cách nào đó với tình trạng lỗi nếu smarthost không khả dụng.