Tại sao tôi cần một máy chủ SMTP?


92

Tại sao tôi cần một máy chủ SMTP trung gian để gửi thư? Tại sao khách hàng của tôi (Outlook, Thunderbird) không thể gửi tin nhắn trực tiếp đến miền SMTP của người nhận?

Ví dụ: nếu tôi phải gửi email đến address@example.combằng tài khoản Gmail của mình, tôi sẽ gửi nó đến smtp.gmail.commáy chủ; và sau đó máy chủ này sẽ gửi tin nhắn của tôi đến máy chủ MX của example.com.


Câu trả lời:


114

Về mặt kỹ thuật có thể gửi email trực tiếp đến máy chủ SMTP của người nhận từ máy tính của bạn.

Nhìn vào nó từ một cơ sở lịch sử, nếu máy chủ SMTP từ xa bị hỏng, bạn muốn một hệ thống tự động xử lý nó và tiếp tục thử lại nó do đó bạn có một máy chủ SMTP. Tương tự, vào thời xưa, không phải tất cả các máy chủ thư đều được kết nối suốt thời gian liên kết đường dài của tốn kém, vì vậy thư sẽ được xếp hàng và gửi khi liên kết được thiết lập.

Chuyển đến nơi có Internet giá rẻ, vẫn hữu ích khi có cơ chế thử lại gửi email nếu máy chủ không khả dụng và chức năng này không lý tưởng để ghi vào MUA (Chương trình thư người dùng cuối / thư người dùng cuối). Các chức năng này phù hợp với một MTA (Máy chủ thư / Máy chủ SMTP).

Nhưng nó trở nên tồi tệ hơn những kẻ gửi thư rác . Hầu hết các email (cách hơn 80%) là thư rác. Vì vậy, các nhà cung cấp dịch vụ thư làm bất cứ điều gì có thể để giảm bớt vấn đề này, và một số lượng lớn các kỹ thuật đưa ra các giả định về cách gửi email, sau đây là những cân nhắc quan trọng:

  1. Greylning: Một số nhà cung cấp sẽ tự động hủy kết nối thư nếu người gửi và người nhận không liên lạc trước đó và mong họ thử dùng lần thứ hai vì những kẻ gửi thư rác thường không có, trong khi máy chủ SMTP luôn được yêu cầu. Điều này làm giảm khối lượng thư rác khoảng 80%. Nó hút để phải làm điều này mặc dù.

  2. Danh tiếng: Nhiều khả năng ai đó gửi email thông qua một máy chủ SMTP có uy tín, được biết đến là hợp pháp hơn so với máy chủ bay qua đêm. Để có được cảm giác về danh tiếng, các nhà cung cấp làm một số điều:

    1. Chặn các địa chỉ động / máy khách (Không phải 100%, nhưng các khối lớn của Internet đã được vạch ra).

    2. Hãy xem DNS ngược phù hợp với DNS chuyển tiếp: Không khó thực hiện, nhưng cho thấy một số mức độ trách nhiệm và kiến ​​thức về các thực tiễn tốt nhất và một số khối địa chỉ khách hàng không có.

    3. Danh tiếng: Khi liên lạc với các máy chủ SMTP khác, rất nhiều nhà cung cấp theo dõi lượng thư rác và khối lượng email được gửi và có thể giảm lượng thư rác bằng cách hạn chế kết nối và theo dõi các thông số này. (Có rất nhiều cách để thực hiện, không phải tất cả đều rõ ràng, nhưng yêu cầu người gửi đã biết).

    4. SPF và DKIM: Các cơ chế này liên kết các tài nguyên DNS với tên miền để làm cho việc giả mạo thư trở nên khó khăn hơn và sẽ khó khăn (nhưng không nhất thiết là không thể triển khai nếu chương trình thư (MUA) chịu trách nhiệm gửi thư đi. hoàn thành như nó đã được chấp nhận. Tín dụng cho nó nên đi đến áp phích dưới đây vì nó làm tôi mất trí, nhưng, dù sao, rất hợp lệ)

Có lẽ có những mối quan tâm nhỏ khác, nhưng đây sẽ là những mối quan tâm chính.


19
Đừng quên những thứ không chính xác như SPF (danh sách trắng của máy chủ được phép gửi thư cho một tên miền) và DKIM (ký thông điệp kỹ thuật số ở cấp tên miền) - đặc biệt là chỉ có thể có một chuyển tiếp chuyên dụng.
grawity

@grawity Chắc chắn đáng để đề cập, nhưng tại sao DKIM không "có thể" mà không có rơle chuyên dụng? Bộ chọn DKIM không bị ràng buộc với ứng dụng gửi hoặc địa chỉ IP. Nếu ứng dụng thư khách của bạn có thể ký thư với khóa được xuất bản thì nó có giá trị như mọi người ký khác.
Mathias R. Jessen

2
@ManuH: Theo số liệu trong câu trả lời tốt, thư bình thường thỏa hiệp 1/5 khối lượng thư. Theo số liệu trên máy chủ của tôi , thư bình thường thỏa hiệp 1/20 khối lượng thư. Đó là một sự đánh đổi tuyệt vời.
dotancohen

1
@manuh: Greylning hoạt động bằng cách đóng kết nối trước khi email được gửi - nó chỉ lắng nghe cho đến khi nhận được người gửi và người nhận - nằm trong tiêu đề thứ. Ngoài ra, một số hệ thống greylist sẽ ommediatelly. chấp nhận tất cả email từ một máy chủ smtp có lịch sử thử lại giao hàng. Đáng buồn thay, nó rất hiệu quả.
davidgo

4
Có thể thêm rằng trong thư "ngày tốt" thường được gửi từ máy chủ SMTP này sang máy chủ khác, sau đó đến thư khác trước khi đến đích. Điều này thường hoạt động tốt, nhưng ví dụ trong cuộc tấn công rtm-worm, một trong những máy tính bị hỏng là một trong những chuyển tiếp thư cần thiết, do đó, các email có cảnh báo, giải pháp và sửa lỗi cho sâu, có thể mất tới 48 giờ để đạt được người nhận của họ.
Baard Kopperud

32

Tại sao tôi cần một máy chủ SMTP trung gian để gửi thư? Tại sao khách hàng của tôi (Outlook, Thunderbird) không thể gửi tin nhắn trực tiếp đến miền SMTP của người nhận?

Vào năm 1991, và hầu hết những năm đầu thập niên 1990 và thậm chí trước đó, bạn có thể làm những gì bạn mô tả. Nhưng thực tế năm 2015 là, trong khi về mặt kỹ thuật, người ta có thể gửi email cho bất kỳ ai từ bất kỳ máy nào có dịch vụ thư được cài đặt trên đó, thế giới SPAM đã khiến phương thức đó trở nên vô dụng.

Khi bạn sử dụng dịch vụ SMTP của Real real, mọi thứ được thiết lập như bản ghi PTR, bản ghi SPF và thậm chí cả tên miền được thiết lập cho một mục đích và chỉ một mục đích: để chứng minh rằng SMTP đang gửi tin nhắn là hợp pháp. Và nếu không? Lọc tin nhắn vào một thư mục SPAM hoặc khu vực tuyệt vời của chế độ xóa. Dưới đây là bảng phân tích về từng mục đó là gì:

  • PTR (Bản ghi con trỏ / Bản ghi DNS đảo ngược): Xác minh cấp độ máy chủ. Như đã giải thích ở đây , bản ghi PTR được sử dụng để ánh xạ giao diện mạng (IP) sang tên máy chủ. Có nghĩa là nếu bạn có địa chỉ 123.456.789.0trên máy chủ SMTP của bạn gửi email smtp.example.comthì đó sẽ là một bản ghi PTR thích hợp smtp.example.com. Có vẻ quá đơn giản, nhưng nó hoạt động vì người duy nhất thực sự có thể thiết lập bản ghi PTR là chủ sở hữu địa chỉ IP và nó chỉ có thể được đặt trên phần cứng của họ. Vì vậy, nó hoạt động như một điểm xác minh đối với người sở hữu / điều hành / quản lý địa chỉ IP đó.

  • SPF (Khung chính sách người gửi): Xác minh cấp nhập tên máy chủ DNS. Một bản ghi SPF như được giải thích ở đây, về cơ bản, bản ghi DNS được thiết lập bởi chủ sở hữu tên miền cung cấp danh sách địa chỉ IP và tên máy chủ của các máy chủ được phép gửi email cho tên miền đó. Đó lại là một bước xác minh khác để đảm bảo rằng chỉ chủ sở hữu tên miền thực sự cho máy chủ SMTP mới có thể gửi thư. Vì vậy, giả sử một máy chủ có địa chỉ IP 123.456.789.9đang gửi email example.com. Chúng tôi đã biết rằng smtp.example.comsử dụng 123.456.789.0, nhưng một mục nhập bản ghi SPF cho example.comcó thể nêu ra, Hey Hey! 123.456.789.9là một máy chủ tốt! Anh ấy hợp pháp! Tôn trọng email của anh ấy!

  • DKIM (Thư xác định tên miền): Xác minh cấp độ thư email. Như đã giải thích ở đây và trên Wikipedia ,, DK DKIM là một hệ thống xác thực email được thiết kế để phát hiện giả mạo email bằng cách cung cấp cơ chế cho phép nhận các bộ trao đổi thư để kiểm tra xem thư đến từ một tên miền có được ủy quyền bởi quản trị viên của tên miền đó và email (bao gồm cả tệp đính kèm) đã không được sửa đổi trong quá trình vận chuyển. Bằng cách sử dụng băm mật mã, DKIM xác minh rằng chính thư không bị lọc hoặc giả mạo trong quá trình vận chuyển. Điều này cũng đóng vai trò là một điểm xác minh khác trong chuỗi Bạn có hợp pháp hay bạn là chuỗi SPAM?.

Vì vậy, cuối cùng, một máy chủ SMTP đối mặt công khai có giá trị bất cứ thứ gì sẽ có ít nhất hai trong số các mục này (PTR và SPF) để xác minh rằng máy chủ SMTP và email liên quan là hợp pháp. Không phải ai cũng sử dụng DKIM, nhưng đây là một lớp xác nhận khác đang ngày càng trở nên phổ biến khi SPAMmer trở nên ngoan cường hơn trong nỗ lực gửi SPAM.


15

Hầu hết các ISP dân cư chặn cổng TCP 25 (SMTP) để ngăn bạn tham gia vào mạng spam. Nếu PC của bạn bị nhiễm, PC của bạn có thể bắt đầu phát tán thư rác theo lệnh của người khác.


Bạn viết "Hầu hết các ISP dân cư chặn cổng TCP 25 (SMTP)" <- bạn có thể giải thích ý nghĩa của nó không. Bạn có nghĩa là họ sẽ không cho phép bạn thực hiện kết nối gửi đến máy chủ SMTP trên cổng 25? Hay bạn có nghĩa là họ sẽ không cho phép bạn nhận được kết nối trên cổng 25?
barlop

2
@barlop trước đây - họ chặn các kết nối gửi đi trên 25 từ các liên kết dân cư đến các máy khác ngoài máy chủ thư của họ (hoặc thực sự đến bất kỳ đâu, vì họ có thể sử dụng 587 hoặc 465 cho máy chủ của riêng họ). Tuy nhiên, có phần hơi cường điệu khi nói rằng hầu hết các ISP làm điều đó.
hobbs

2
@hobbs - Kinh nghiệm của tôi (và đó là một phần công bằng trong công việc của tôi) thì khác. Mặc dù nhiều ISP sẽ chặn lưu lượng truy cập rời khỏi mạng của họ với mục tiêu là cổng 25 (buộc lưu lượng truy cập cổng 25 qua máy chủ thư của họ), nhưng điều này thường không đúng với cổng 587 hoặc 465 - và thực tế điều này có ý nghĩa. Cổng 587 và 465 thường xác thực REQUIRE, và chặn và cụ thể là MUA sang MTA thay vì MTA-MTA - Việc chặn các cổng này sẽ tạo ra phản ứng ngược HUGE vì nhiều công ty yêu cầu điều đó để cho phép chuyển vùng, trách nhiệm và không phá vỡ SPF.
davidgo

3
@hobbs, tôi chưa bao giờ viết rằng hầu hết các ISP làm điều này; Những gì tôi đã viết là hầu hết các ISP dân cư làm điều này. Ví dụ, AT & T, Comcast, TWC, Verizon, v.v. làm điều này cho khách hàng dân cư của họ, nhưng họ không làm điều này cho khách hàng doanh nghiệp của họ.
Ron Maupin

6

Các câu trả lời khác đều rất tuyệt vời và thư rác có liên quan nhiều đến nó.

Nhưng thực sự có một câu trả lời đơn giản hơn, chung chung hơn: các tính năng. Gửi email thông qua SMTP thực sự là một công việc rất phức tạp. Ngay cả khi không có thư rác, bạn sẽ không muốn triển khai toàn bộ bộ tính năng của giao thức SMTP trong mỗi ứng dụng email; bạn tốt hơn với một phần mềm chuyên dụng (sendmail, postfix, v.v. là những phần mềm lớn trong thế giới * nix, Exchange trong thế giới Windows).

Ví dụ, ngay cả ở mức cơ bản nhất, máy chủ SMTP "thực" ít nhất phải có khả năng giải quyết các bản ghi MX. Sau đó, nó phải đàm phán các tính năng (chủ yếu là TLS, nhưng cũng có các tính năng khác). Nó phải quản lý hàng đợi để thử lại, tạo báo cáo không phân phối, v.v.

Và đó chỉ là chức năng cơ bản, bắt buộc, mà không có máy chủ nào sẽ không hoạt động. Nó thậm chí không bao gồm những thứ như viết lại địa chỉ, gửi thư. Không đề cập đến hàng tá các giao thức khác mà sendmail et al hỗ trợ, chẳng hạn như UUCP.

Việc triển khai SMTP trong Outlook, Thunderbird, v.v. là rất tối thiểu - tốt nhất, gần tương đương với việc sử dụng máy chủ thông minh trên sendmail, nếu vậy.

Liên quan, nhưng một vấn đề riêng biệt: email là một chủ đề rất nhạy cảm về bảo mật và bạn muốn có một hoặc một vài máy chủ được quản lý tập trung xử lý nó, thay vì có khả năng hàng trăm hoặc hàng nghìn cá nhân trên mỗi máy tính để bàn.


đây là một quan điểm tốt. Nó không chỉ là về các tính năng thực tế để xếp hàng và v.v.: tính khả dụng của máy chủ tạo ra sự khác biệt đối với một số tính năng đó. Nếu có sự cố và bạn tắt máy tính xách tay của mình, nó không thể thử lại cho đến khi bật tiếp - máy chủ thư có thể khả dụng 24/7 mặc dù vậy nó ở vị trí tốt hơn nhiều để quản lý hàng đợi thư. Khi bạn đã gửi tin nhắn của mình đến máy chủ bằng SMTP, ứng dụng thư của bạn không cần trực tuyến để đảm bảo gửi.
David Spillett

4

Tại sao tôi cần một máy chủ SMTP trung gian để gửi thư? Tại sao khách hàng của tôi (Outlook, Thunderbird) không thể gửi tin nhắn trực tiếp đến miền SMTP của người nhận?

Bạn có thể tạo một chương trình email đã làm điều này và tôi không nghi ngờ gì những người khác đã làm (hoặc đã cố gắng) trước đó.

Về cơ bản, bạn sẽ viết một công cụ vừa là MUA (tác nhân người dùng thư) và MTA (tác nhân chuyển thư) thành một.

Lý do mà điều này theo truyền thống được tách thành các công cụ khác nhau, với MTA nằm ở "phía máy chủ", là một MTA gửi thư qua internet mở phức tạp hơn đáng kể để viết và định cấu hình, và cũng có lợi từ việc cư trú trên một máy chủ "luôn luôn" đáng tin cậy.

Một MTA phải:

  • Tra cứu và kết nối với các máy chủ mà nó không tin tưởng hoặc có thể hoạt động sai và xử lý các điều kiện lỗi theo cách hợp lý mà không bị mất thư.

  • Xử lý các máy chủ ngừng hoạt động và định tuyến đến các máy chủ thay thế hoặc xếp hàng thư để thử lại sau. Điều này chạy tốt nhất trên một quy trình máy chủ "luôn luôn kết nối" với internet. Nó cũng ngụ ý rằng các đại lý chuyển thư cần các khu vực lưu trữ riêng cho thư được xếp hàng.

  • Xử lý một loạt các khả năng của máy chủ khác nhau, điều chỉnh hành vi theo khả năng của máy chủ nhận.

  • Báo cáo lại cho người dùng về các điều kiện lỗi hoặc khi thư không thể gửi được, để thư không bị mất.

  • Có thực hành bảo mật tuyệt vời và có ý thức bảo mật rất.

  • Lý tưởng nhất là cư trú trên một máy chủ đáng tin cậy, luôn được kết nối với địa chỉ IP ổn định và nhập DNS ngược, tức là kết nối internet phù hợp với các máy chủ công cộng. Điều này giúp các hệ thống khác không phát hiện thư được gửi dưới dạng thư rác.

Đưa ra các yêu cầu này, điều hợp lý là đặt máy chủ SMTP trên máy chủ luôn ở chế độ công khai ở đâu đó và thử và sử dụng một công cụ phù hợp để thực hiện công việc cụ thể đó.


1

Một điều khác cần xem xét là nhận email trả lại . Tối thiểu, tất cả các email gửi đi đều có địa chỉ TỪ nơi có thể gửi phản hồi (người dùng không xác định, trả lời kỳ nghỉ, v.v.). Để giải quyết địa chỉ trả về, bản ghi MX phải tồn tại trỏ đến vị trí hộp thư trả về. Trừ khi bạn đang gửi email từ một máy tính có địa chỉ IP tĩnh luôn bật, bạn sẽ cần một máy chủ để xử lý các tin nhắn gửi đến này. Điều này thường (nhưng không phải luôn luôn) được xử lý bởi cùng một dịch vụ.

GMail, Outlook 365 và Yahoo Mail là những ví dụ về dịch vụ email được sử dụng bởi các cá nhân đang gửi email. Đối với gửi email thương mại, có các dịch vụ như MailChimp, Marketo và Eloqua rất tốt trong việc gửi email hàng loạt cho một công ty và xử lý những việc như bị trả lại, điều chỉnh và khả năng gửi.

Xem: https://en.m.wikipedia.org/wiki/Bounce_address


Tôi không hiểu tại sao tôi cần một IP tĩnh để nhận được trả lời của mình ... Câu trả lời phải được gửi đến máy chủ MX của tôi (ví dụ: Gmail) không phải đến máy tính của tôi. Tôi có đúng không
Tobia

Vâng, bạn đúng. Tôi đoán quan điểm của tôi là một hộp thư đến thường tồn tại trên một máy chủ ở đâu đó để gửi email đi. Theo logic, nó cũng có ý nghĩa đối với máy chủ đó để xử lý email gửi đi. Nếu không, bạn sẽ mất những thứ như có một thư mục email "đã gửi".
dana

Mmh nó là hợp lý. Nhưng tôi có thể gửi tin nhắn với Gmail với địa chỉ "từ" hoặc "replyto" không xác định, mở khóa máy chủ smtp của nó ...
Tobia

1
Nếu bạn sử dụng GMail, bạn phải sử dụng xác thực smtp. Vì vậy, địa chỉ TỪ được đặt thành địa chỉ @ gmail.com của bạn. Nếu không, bạn sẽ có thể sử dụng dịch vụ của họ để giả mạo.
dana

2
Ngày nay, rất nhiều người dùng không thể quan tâm đến việc trả lại, NHƯNG một thiết lập không chấp nhận bị trả lại thường được coi là nguồn thư rác có thể xảy ra.
rackandboneman
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.