Tại sao OS X có thể gửi email mà không cần cấu hình SMTP trước?


9

Khi tôi thử lệnh trong terminal, một email sẽ được gửi. Tôi đã kiểm tra không có SMTP cục bộ nào đang chạy, vậy cơ chế được Apple sử dụng đằng sau hậu trường là gì?

echo "Hello" | mail -s "Test" foo@bar.com

Câu trả lời:


4

mail trên OS X dường như thực sự sinh ra Postfix đủ lâu để xử lý thư, sau đó xé nó một thời gian ngắn sau đó.

Để thấy điều này trong thực tế, hãy thử telnet localhost 25trước lệnh mail, sau đó ngay sau đó, sau đó đợi 5 phút và thử lại.

Tôi không chắc đây thực sự là một câu trả lời thích hợp cho câu hỏi vì nó không giải thích được Postfix được sinh ra và phá bỏ như thế nào , nhưng hy vọng nó sẽ giúp trả lời câu hỏi.


7

Daemon hoặc máy chủ SMTP ở đó để nhận thư, không gửi nó. Trong ví dụ của bạn, mailhoàn toàn là một ứng dụng email và nó kết nối với bất kỳ máy chủ nào được xác định bởi bản ghi DNS MX thích hợp bar.comvà không có yêu cầu cho một máy chủ cục bộ đang chạy để làm như vậy.

Tuy nhiên, tùy thuộc vào thiết lập thư của bạn, bạn có thể yêu cầu đăng nhập vào một máy chủ thư đi để xác thực hoặc nếu không có gì khác chỉ để cung cấp địa chỉ người gửi và trả về, v.v. Bây giờ, bạn có thể thực hiện tất cả điều này tại dòng lệnh bằng cách chuyển phù hợp các tham số trên thiết bị đầu cuối, nhưng miễn là bạn đã thiết lập ứng dụng Thư của mình, cấu hình này đã được lưu trữ và chỉ cần kích hoạt tạm thời hệ thống con thư, các lệnh thiết bị đầu cuối có thể lấy thông tin đó và bây giờ có một hoặc nhiều máy chủ smtp mail mà chúng có thể chọn gửi tin nhắn đi. Sau đó nó sẽ chấm dứt các quá trình khi hoàn thành.

Bạn có thể kiểm tra tất cả điều này tại dòng lệnh và gửi thư mà không phải sử dụng ứng dụng thư khách. Tôi không ở Mac, vì vậy những lệnh này có thể cần chỉnh sửa bởi một người nào đó, nhưng bạn có thể làm điều này:

nslookup
set type=mx
bar.com
exit

telnet MXServer 25 (where MXServer is one of the results returned above and 25 is the port number for SMTP servers)

Đọc phần này để biết thêm thông tin về gửi email qua telnet - đây là một công cụ gỡ lỗi tuyệt vời


Trong khi câu trả lời của bạn nhận được số phiếu cao nhất, nhưng đó là sai. Mac sẽ sinh ra một Postfix để nhận email và tự động tắt như @zigg đã đề xuất ở trên. Cảm ơn cho nỗ lực của bạn nào.
Yoga

Không phải là nó không đúng như vậy, tất cả các chi tiết đều đúng, nhưng nó không nhất thiết phải trả lời câu hỏi của bạn ở dạng hiện tại. Chỉnh sửa để làm như vậy.
nhồi vào

@ waree cho biết, "Daemon hoặc máy chủ SMTP ở đó để nhận thư, không gửi thư". Tôi phải cầu xin khác biệt. Vì đây là một nhận xét Tôi sẽ chỉ trích dẫn điều này từ Wikipedia: "các ứng dụng thư khách cấp độ người dùng thường chỉ sử dụng SMTP để gửi tin nhắn"
Seamus

1

Tôi nghĩ rằng mailluôn luôn sử dụng sendmail địa phương để gửi thư. Tại OSX sendmail là postfix. Và nó chắc chắn được sử dụng.

Bạn có thể kiểm tra các tiêu đề thư Received: by [Your-Mac] (Postfix, from userid ....

Tuy nhiên, đó không phải là một ý tưởng tốt để sử dụng mail(hoặc tốt hơn postfix) như thế này. Cách thực hành tốt nhất là sử dụng Máy chủ thông minh cho Postfix cục bộ của bạn để tránh các hạn chế tường lửa thường được sử dụng.

Bạn có thể tìm thấy giải pháp tại Cài đặt máy chủ thông minh SMTP cho Postfix trong Snow Leopard phù hợp với tôi (cũng trên Lion, Mountain Lion).


Từ tiêu đề, tôi đã tìm thấy ... Đã nhận: bởi 10.194.242.101 với id id xxx; ... X-Nhận: bởi 10,68,92.196 với id id yyy; ... nhưng IP nội bộ của tôi là 192.168.xx
Yoga
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.