Máy chủ smtp dự phòng là gì? Các lệnh SMTP. SMTP là gì

SMTP được triển khai ở mạng hiện đại Tiêu chuẩn TCP/IP. Thông tin về việc sử dụng giao thức này xuất hiện lần đầu tiên vào năm 1982. Mặc dù thực tế là máy chủ SMTP cũng có thể được sử dụng để nhận tin nhắn, nhưng ngày nay hầu hết các ứng dụng email khách chỉ sử dụng nó để gửi, ưu tiên các công nghệ khác (ví dụ: POP hoặc IMAP) cho tiếp nhận thông tin. Giao thức này là một trong những giao thức phổ biến nhất và được sử dụng bởi số lượng lớn các chương trình thư và máy chủ.

Chức năng của SMTP là kiểm tra xem các cài đặt và tham số để gửi thư có được chỉ định chính xác hay không. Giao thức này xác minh cài đặt máy tính của người dùng đang cố gắng gửi tin nhắn và sau đó gửi chúng nếu tất cả cài đặt đã được thực hiện chính xác. Sau đó công việc SMTP không kết thúc và máy chủ chờ thông báo về việc gửi dữ liệu thành công. Nếu một tin nhắn không thể gửi được vì lý do nào đó, một tin nhắn tương ứng sẽ được gửi đến người gửi.

Thiết lập SMTP

Thiết lập SMTP bao gồm việc thiết lập các yêu cầu phần mềm và xác định địa chỉ máy chủ được sử dụng để gửi. Để gửi từ phía người dùng, bạn cần cài đặt một chương trình máy khách có thể gửi thư và liên lạc với máy chủ SMTP bằng giao thức TCP/IP. Sau đó, chương trình được khởi chạy và định cấu hình để hoạt động với dịch vụ gửi và nhận thư bằng cách chỉ định cài đặt bắt buộc. Sau đó, người dùng sẽ cố gắng gửi tin nhắn. Nếu cài đặt chính xác, thư sẽ được gửi đến người nhận.

Số đông dịch vụ hiện đại email đã có máy chủ được cấu hình để gửi tin nhắn. Nếu bạn không sử dụng phần mềm của bên thứ ba để gửi thư, bạn có thể gửi thư mà không cần thực hiện cài đặt bổ sung trên trang web dịch vụ nơi bạn có tài khoản.

Quản trị viên máy chủ SMTP hiện đại yêu cầu người dùng xác thực trước khi họ có thể gửi tin nhắn của mình. Trước tiên, người dùng phải cho biết thông tin đăng nhập và mật khẩu của mình trên máy chủ, sau đó mới tiến hành gửi. Sự bảo vệ nàyđược sử dụng để chặn khả năng gửi thư rác bằng các giao thức SMTP đơn giản. Trước đây, giao thức SMTP sử dụng địa chỉ IP duy nhất của người gửi để nhận dạng.

Đây là một giao thức chuyển thư đơn giản. Dịch từ tiếng Anh như Giao thức chuyển thư đơn giản. Dựa vào tên, chúng ta có thể kết luận rằng máy chủ SMTP chịu trách nhiệm gửi danh sách mail. Nhiệm vụ của nó thường bao gồm hai chức năng chính:

  • kiểm tra xem cài đặt có chính xác không và cấp quyền cho máy tính đang cố gửi email;
  • gửi tin nhắn đi đến địa chỉ được chỉ định và xác nhận việc gửi tin nhắn thành công. Nếu không thể gửi, máy chủ sẽ trả về phản hồi cho người gửi kèm theo lỗi gửi

Khi gửi email, máy chủ SMTP của người gửi sẽ thiết lập kết nối với máy chủ sẽ nhận được tin nhắn này. “Giao tiếp” này xảy ra bằng cách gửi và nhận lệnh, tạo thành một phiên SMTP với số lượng thao tác SMTP không giới hạn. Có ba lệnh bắt buộc cho mỗi thao tác:

  • xác định địa chỉ trả lại (MAILFROM)
  • xác định người nhận email (RCPT TO)
  • gửi tin nhắn văn bản (DATA)

Xác định địa chỉ của người gửi, người nhận và sự hiện diện của nội dung bức thư là những điều kiện bắt buộc, nếu không có những điều kiện đó thì bức thư sẽ không được gửi đi, kể cả bằng thư “giấy” thông thường, quen thuộc. Chúng ta có thể nói gì về điện tử?


Sơ lược về lợi ích của máy chủ SMTP

  • Như đã đề cập, mục đích chính của máy chủ SMTP là gửi và kiểm soát thư đi. Một máy chủ SMTP chất lượng cao có khả năng gửi nhanh chóng khối lượng lớntin nhắn email, trốn tránh các hạn chế của ISP.
  • Nếu bạn đang sử dụng máy chủ SMTP bên ngoài thì sự an toàntin nhắn email và tỷ lệ gửi chúng đến hộp thư đến tăng lên đáng kể.
    Tôi có thể tìm thấy máy chủ SMTP bên ngoài này ở đâu? Thêm chi tiết về vấn đề này.
  • E-mail có thể đi qua một số máy chủ SMTP trước khi truy cập Hộp thư người nhận. Do nguy cơ bị tấn công spam, các nhà cung cấp thường ngăn chặn việc gửi email mà không sử dụng máy chủ SMTP. Vì vậy, người dùng đôi khi gặp vấn đề trong việc gửi thư.
    Giải pháp có thể là cài đặt/tích hợp một máy chủ SMTP bên ngoài riêng biệt, điều này cũng sẽ lọc thư gửi đi để tìm thư rác và vi-rút.
  • Việc tăng cường tính bảo mật của thư cũng đạt được bằng cách ủy quyền người dùng mà máy chủ SMTP sử dụng: bằng cách chỉ định thông tin đăng nhập và mật khẩu riêng lẻ để kết nối với máy chủ.
  • Và quan trọng là việc tích hợp máy chủ SMTP diễn ra mà không cần cài đặt phần mềm bổ sung hoặc các yêu cầu đặc biệt khác. Bạn chỉ cần chỉ định các tham số cơ bản của máy chủ SMTP trong cài đặt ứng dụng email của mình và bạn có thể bắt đầu gửi email hàng loạt.

Nếu bạn dự định thực hiện tiếp thị qua email hợp pháp, hãy cân nhắc sử dụng máy chủ SMTP bên ngoài để đảm bảo tính bảo mật và tốc độ gửi các chiến dịch email hàng loạt của bạn.

4085/2, Sorokin D. S. Mail giao thức. Các phương pháp chống thư rác

SMTP

SMTP (Giao thức truyền thư đơn giản) là một giao thức mạng được sử dụng rộng rãi được thiết kế để truyền email qua mạng TCP/IP.

Giao dịch SMTP

SMTP là một giao thức văn bản dựa trên kết nối, trong đó người gửi tin nhắn giao tiếp với người nhận bằng cách đưa ra các dòng lệnh và nhận dữ liệu cần thiết thông qua kênh đáng tin cậy, thường là kết nối TCP (Giao thức điều khiển truyền). Phiên SMTP bao gồm các lệnh được gửi bởi máy khách SMTP và các phản hồi tương ứng từ máy chủ SMTP. Khi một phiên được mở, máy chủ và máy khách sẽ trao đổi các tham số của nó. Một phiên có thể bao gồm không hoặc nhiều hoạt động SMTP (giao dịch).

Lệnh SMTP

Một hoạt động SMTP bao gồm ba chuỗi lệnh/phản hồi:

MAIL FROM - đặt địa chỉ trả lại (tức làĐường dẫn trả về, 53121.From, mfrom). Đây là địa chỉ để nhận thư trả lại.

RCPT TO - đặt người nhận tin nhắn này. Lệnh này có thể được đưa ra nhiều lần, một lần cho mỗi người nhận. Những địa chỉ này cũng là một phần của shell.

DỮ LIỆU - để gửi văn bản của tin nhắn. Đây chính là nội dung của bức thư, trái ngược với phong bì của nó. Nó bao gồm tiêu đề thư và nội dung thư được phân tách bằng một dòng trống. DATA về cơ bản là một nhóm lệnh và máy chủ phản hồi hai lần: đầu tiên là chính lệnh DATA, để thông báo

sẵn sàng chấp nhận văn bản; và lần thứ hai sau khi kết thúc chuỗi dữ liệu để chấp nhận hoặc từ chối toàn bộ bức thư.

Ngoài các phản hồi trung gian cho lệnh DATA, mỗi phản hồi của máy chủ có thể là dương (mã phản hồi 2xx) hoặc âm. Ngược lại, cái sau có thể là vĩnh viễn (mã 5xx) hoặc tạm thời (mã 4xx). Lỗi máy chủ SMTP không truyền được tin nhắn là lỗi vĩnh viễn; trong trường hợp này khách hàng phải gửi thư trả lời. Sau khi thiết lập lại - phản hồi tích cực, tin nhắn rất có thể sẽ bị từ chối. Máy chủ cũng có thể cho biết rằng dữ liệu bổ sung được mong đợi từ máy khách (mã 3xx).

Máy chủ ban đầu (máy khách SMTP) có thể là ứng dụng thư người dùng cuối(được định nghĩa theo chức năng là đại lý bưu điện- MUA) và tác nhân chuyển tiếp tin nhắn (MTA) trên máy chủ, tức là. máy chủ hoạt động như một máy khách trong phiên thích hợp để chuyển tiếp tin nhắn. Các máy chủ đầy đủ chức năng hỗ trợ hàng đợi tin nhắn để truyền lại tin nhắn trong trường hợp có lỗi.

MUA biết máy chủ SMTP dành cho thư đi từ cài đặt của nó. Máy chủ SMTP, hoạt động như một máy khách, tức là chuyển tiếp tin nhắn, xác định máy chủ nào sẽ kết nối bằng cách xem tài nguyên bản ghi MX ( Trao đổi thư điện tử) DNS cho tên miền của mỗi người nhận. Trong trường hợp không tìm thấy bản ghi MX, các MTA tương thích (không phải tất cả) sẽ quay trở lại bản ghi A đơn giản. Máy chủ chuyển tiếp cũng có thể được cấu hình để sử dụng thông minh chủ nhà.

Máy chủ SMTP, hoạt động như một máy khách, thiết lập kết nối TCP với máy chủ như được thiết kế cho Cổng SMTP 25. MUA nên sử dụng cổng 587 để kết nối với

Tác nhân gửi tin nhắn (MSA). Sự khác biệt chính giữa MTA và MSA là việc xác thực SMTP chỉ được yêu cầu cho phần sau.

SMTPS

SMTPS đề cập đến các phương thức bảo mật lớp vận chuyển SMTP. Nó được thiết kế để đảm bảo xác thực bên, tính toàn vẹn và bảo mật dữ liệu. SMTPS không phải là một giao thức hoặc phần mở rộng độc quyền cho SMTP, nó chỉ là một cách để bảo mật SMTP ở lớp vận chuyển.

Máy khách và máy chủ sử dụng SMTP thông thường ở cấp ứng dụng nhưng kết nối được bảo mật bằng SSL hoặc TLS. Điều này xảy ra sau khi kết nối được thiết lập trước khi gửi bất kỳ dữ liệu thư nào.

SMTPS sử dụng cổng 465.

POP3 (Giao thức Bưu điện Phiên bản 3) là một giao thức ứng dụng Internet tiêu chuẩn được các ứng dụng email khách sử dụng để truy xuất e-mail từ một máy chủ từ xa qua kết nối TCP/IP. POP và IMAP (Giao thức truy cập thư Internet) là các giao thức Internet phổ biến nhất để truy xuất thư. Hầu như tất cả các ứng dụng khách và máy chủ email hiện đại đều hỗ trợ cả hai tiêu chuẩn. Giao thức POP đã được phát triển thành nhiều phiên bản, với phiên bản thứ ba (POP3) là tiêu chuẩn hiện tại. Hầu hết các nhà cung cấp dịch vụ email (như Hotmail, Gmail và Yahoo! Mail) cũng hỗ trợ IMAP và POP3. Những phiên bản trước các giao thức (POP, POP2) đã lỗi thời.

Hỗ trợ POP yêu cầu đơn giản“tải xuống và xóa” để truy cập hộp thư từ xa. Mặc dù hầu hết các ứng dụng khách POP đều cung cấp khả năng để lại thư trên máy chủ sau khi tải xuống, các ứng dụng khách sử dụng POP thường kết nối, truy xuất tất cả thư, lưu chúng trên máy tính của người dùng dưới dạng thư mới, xóa chúng khỏi máy chủ và sau đó ngắt kết nối.

Máy chủ POP3 lắng nghe trên cổng phổ biến 110. Mã hóa giao tiếp cho POP3 được yêu cầu sau khi giao thức bắt đầu, sử dụng lệnh STLS (nếu được hỗ trợ) hoặc POP3S, kết nối với máy chủ bằng TLS hoặc SSL trên cổng TCP 995.

Lệnh POP3

Tranh luận

Những hạn chế

Câu trả lời có thể

Sự hỗ trợ của cô ấy không

* +OK maildrop có n tin nhắn

[Tên]

* -ERR mật khẩu được cung cấp cho

bắt buộc

[tên] không chính xác

* +Tên OK là hộp thư hợp lệ

* -ERR chưa bao giờ nghe đến hộp thư

* +OK thư bị khóa và

Hoạt động sau khi chuyển thành công

* -ERR mật khẩu không hợp lệ

tên hộp thư

* -ERR không khóa được

[tin nhắn]

Có sẵn sau khi thành công

* +OK đã xóa tin nhắn

nhận biết

* -ERR không có thông báo như vậy

[tin nhắn]

Có sẵn sau khi thành công

* +OK quét danh sách sau

nhận biết

* -ERR không có thông báo như vậy

Có sẵn sau khi thành công

nhận biết

[tin nhắn]

Có sẵn sau khi thành công

* +OK có thông báo tiếp theo

nhận biết

* -ERR không có thông báo như vậy

Có sẵn sau khi thành công

nhận biết

Có sẵn sau khi thành công

nhận biết

[tin nhắn]

Có sẵn sau khi thành công

[Số lượng

nhận biết

* -ERR không có thông báo như vậy

IMAP

Một giao thức thay thế để thu thập thư từ máy chủ thư là IMAP. IMAP (Giao thức truy cập tin nhắn Internet) là giao thức cấp ứng dụng để truy cập email.

Căn cứ vào phương tiện vận chuyển giao thức TCP và sử dụng cổng 143.

POP3 có một số nhược điểm, trong đó nghiêm trọng nhất là thiếu khả năng kiểm soát việc di chuyển và lưu trữ tin nhắn trên máy chủ. Theo quy định, các tin nhắn được tải xuống từ máy chủ thư cùng một lúc, sau đó chúng sẽ bị xóa khỏi máy chủ, tức là không có khả năng chọn tin nhắn để nhận.

Để giải quyết các vấn đề liên quan đến tính năng này của POP3, Đại học Washington đã phát triển một giao thức mới cho phép người dùng nhận e-mail từ cùng một hộp thư từ nhiều địa điểm mà không cần phân phối thư giữa các điểm nhận. Người dùng có cơ hội quản lý thư trong hộp thư của mình và các chức năng bổ sung để duy trì hộp thư trên máy chủ.

Lợi ích của IMAP

Khi sử dụng POP3, máy khách chỉ kết nối với máy chủ trong khoảng thời gian cần thiết để tải xuống tin nhắn mới. Tại sử dụng IMAP kết nối không bị ngắt khi giao diện người dùng đang hoạt động và các tin nhắn chỉ được tải xuống khi khách hàng yêu cầu. Điều này cho phép bạn giảm thời gian phản hồi cho người dùng có hộp thư chứa nhiều thư lớn.

Giao thức POP yêu cầu máy khách hiện tại phải là máy khách duy nhất được kết nối với hộp thư. IMAP cho phép nhiều máy khách truy cập vào hộp thư cùng lúc và cung cấp cho máy khách khả năng giám sát các thay đổi được thực hiện bởi các máy khách khác được kết nối cùng lúc.

Nhờ hệ thống cờ được xác định trong IMAP4, máy khách có thể theo dõi trạng thái của tin nhắn (đã đọc, đã gửi trả lời, đã xóa, v.v.); dữ liệu cờ được lưu trữ trên máy chủ.

Máy khách IMAP4 có thể tạo, đổi tên và xóa hộp thư cũng như di chuyển thư giữa các hộp thư. Bạn cũng có thể sử dụng Tiện ích mở rộng Danh sách điều khiển truy cập IMAP4 (ACL) (RFC 4314) để kiểm soát quyền truy cập hộp thư.

Việc tìm kiếm tin nhắn diễn ra ở phía máy chủ. IMAP4 có cơ chế mở rộng rõ ràng.

Phương pháp chống thư rác

Các thư rác hiện đại được phân phối thành hàng trăm nghìn bản chỉ trong vài chục phút. Thông thường, thư rác đến từ máy tính của người dùng bị nhiễm phần mềm độc hại - mạng zombie. Điều gì có thể chống lại sự tấn công dữ dội này? Ngành bảo mật CNTT hiện đại cung cấp nhiều giải pháp và những người chống gửi thư rác có nhiều công nghệ khác nhau trong kho vũ khí của họ. Tuy nhiên, không ai trong số công nghệ hiện có không phải là “viên đạn bạc” thần kỳ chống lại thư rác. Giải pháp phổ quátđơn giản là không tồn tại. Hầu hết các sản phẩm hiện đại đều sử dụng nhiều công nghệ, nếu không hiệu quả của sản phẩm sẽ không cao.

DNSBL

DNSBL - Danh sách đen DNS hoặc danh sách chặn DNS - danh sách các máy chủ được lưu trữ bằng hệ thống kiến ​​​​trúc DNS. Thường được sử dụng để chống thư rác. Máy chủ thư truy cập DNSBL và kiểm tra địa chỉ IP của máy khách mà nó đang nhận tin nhắn. Nếu câu trả lời là tích cực thì được coi là đang cố gắng nhận tin nhắn rác. Máy chủ gửi nhận được lỗi 5xx (lỗi nghiêm trọng) và tin nhắn không được chấp nhận. Máy chủ thư của người gửi tạo một "biên nhận bị trả lại" cho người gửi cho biết rằng thư chưa được gửi.

Có 2 phương pháp sử dụng công nghệ này.

1. Chặn rõ ràng - từ chối các tin nhắn đến từ địa chỉ IP nằm trong DNSBL

2. Một cách tiếp cận cân bằng. Với phương pháp này, một tin nhắn đến từ một địa chỉ IP

nằm trong DNSBL không bị chặn, nhưng thực tế này được tính đến khi phân loại thư “thư rác”.

Khi sử dụng phương pháp đầu tiên, tất cả các chữ cái từ địa chỉ IP có trong DNSBL đều bị từ chối rõ ràng. Bất kể địa chỉ IP đó xứng đáng bị đưa vào danh sách đen hay do nhầm lẫn (điều này ngày càng trở nên phổ biến trong thực tế). Việc sử dụng cách tiếp cận thứ hai được minh họa hoàn hảo bởi bộ lọc thư rác mã nguồn mở spamassassin. Khi sử dụng phương pháp có trọng số để phân loại tin nhắn, tức là phân tích dựa trên nhiều tiêu chí. Trong trường hợp này, sự hiện diện của địa chỉ IP của người gửi trong danh sách đen không phải là yếu tố duy nhất và là yếu tố dẫn đến ảnh hưởng đến quyết định phân loại thư, điều này có nghĩa là giảm số lượng kết quả lọc sai trong trường hợp địa chỉ IP của người gửi bị lộ. bị liệt vào danh sách đen bởi một tai nạn vô lý.

Kiểm soát khối lượng

Công nghệ này liên quan đến việc xác định trong luồng thư tin nhắn hàng loạt, hoàn toàn giống nhau hoặc khác nhau một chút. Để xây dựng một máy phân tích “khối lượng” hoạt động được, cần phải có luồng thư lớn, vì vậy công nghệ này được cung cấp bởi các nhà sản xuất lớn, những người có khối lượng thư đáng kể mà họ có thể phân tích.

Ưu điểm: Nếu công nghệ hoạt động, nó đảm bảo sẽ phát hiện được hàng loạt thư.

Nhược điểm: Thứ nhất, một thư “lớn” có thể không phải là thư rác mà là thư khá hợp pháp (ví dụ: Ozon.ru, Đăng ký.ru gửi hàng nghìn thư gần như giống hệt nhau, nhưng đây không phải là thư rác). Thứ hai, những kẻ gửi thư rác biết cách “đột phá” sự bảo vệ đó bằng các công nghệ thông minh. Họ sử dụng phần mềm tạo ra nội dung khác nhau- văn bản, đồ họa, v.v. - trong mọi thư rác

SMTP(Giao thức truyền thư đơn giản) là giao thức mạng được thiết kế để truyền email qua mạng TCP/IP. ESMTP(tiếng Anh Extended SMTP) - một phần mở rộng có thể mở rộng của giao thức SMTP. Hiện tại, “giao thức SMTP” thường đề cập đến ESMTP và các phần mở rộng của nó. SMTP sử dụng Cổng TCP 25.

Giao thức SMTP sử dụng các lệnh văn bản ASCII đơn giản và trả về các phản hồi tin nhắn văn bản được mã hóa ba ký tự. Giao thức SMTP được mô tả trong Yêu cầu Nhận xét Internet (RFC) số 821, được Lực lượng Đặc nhiệm Kỹ thuật Internet (IETF) phát triển và xuất bản vào ngày 21 tháng 8 năm 1982. Kể từ đó, nó đã trải qua một số sửa đổi, nhưng nhìn chung các lệnh cơ bản của giao thức không thay đổi.

Các lệnh máy khách SMTP cơ bản

Đội HELO

Theo định nghĩa, các lệnh giao thức SMTP dài bốn ký tự. Lời chào được máy khách gửi đến máy chủ là lệnh HELO. Dạng lệnh như sau:

Tên miền HELO

Mục đích của lệnh HELO là trình bày máy khách với máy chủ SMTP. Thật không may, phương pháp truy cập này đã được phát triển ở giai đoạn phát triển ban đầu Mạng Internet, khi chưa có số lượng lớn các nỗ lực xâm nhập trái phép vào hệ thống máy tính. Như bạn có thể thấy, khách hàng có thể tự gọi mình bằng bất kỳ tên nào trong dòng lệnh. Điều này dẫn đến thực tế là hiện tại hầu hết các máy chủ SMTP đều sử dụng lệnh này hoàn toàn chính thức. Nếu họ cố gắng xác định máy khách thì cơ chế tra cứu DNS ngược sẽ được kích hoạt để xác định tên máy chủ Hệ thống tên miền thực tế của máy khách từ địa chỉ IP của nó. Thông thường, vì lý do bảo mật, máy chủ SMTP sẽ từ chối kết nối đến các máy chủ có địa chỉ IP không phân giải thành tên máy chủ tương ứng. Gửi lệnh này, máy khách sẽ thông báo cho máy chủ rằng nó muốn thiết lập kết nối với nó. Bằng cách phản hồi lệnh này, máy chủ sẽ thông báo rằng kết nối mới đã được thiết lập với máy khách và sẵn sàng chấp nhận các lệnh tiếp theo từ nó.

Khi làm việc với giao thức SMTP, bạn phải phân biệt giữa các máy khách SMTP. Người dùng máy khách và máy chủ máy khách không giống nhau. Khi tạo một email, người dùng hệ thống email cũng là khách hàng của máy chủ cục bộ của mình. Sau khi thư được gửi đi, nó không còn là ứng dụng khách của quy trình SMTP nữa. Bây giờ máy chủ cục bộ của anh ta thực hiện quá trình gửi tin nhắn và chính nó hoạt động như Máy khách SMTP. Khi localhost kết nối với máy chủ từ xađể truyền một tin nhắn bằng giao thức SMTP, nó hoạt động như một máy khách của quy trình SMTP. Lệnh HELO quảng cáo tên máy chủ cục bộ là máy khách chứ không phải người dùng thực sự người đã gửi tin nhắn. Các khái niệm này thường bị nhầm lẫn, gây khó khăn cho việc giải quyết các vấn đề phát sinh trong hệ thống email.

Lệnh AUTH

Mở rộng cuộc hội thoại SMTP bằng lệnh AUTH được mô tả trong RFC 4954.

    PLAIN (Sử dụng mã hóa Base64.)

    ĐĂNG NHẬP (Sử dụng mã hóa Base64.)

    GSSAPI (Giao diện chương trình ứng dụng dịch vụ bảo mật chung)

    DIGEST-MD5 (Xác thực truy cập thông báo)

Sự khác biệt duy nhất giữa PLAIN và LOGIN là trong tùy chọn đầu tiên, thông tin đăng nhập + mật khẩu được truyền trên một dòng và trong tùy chọn thứ hai - đầu tiên là thông tin đăng nhập, sau đó là mật khẩu. Nhưng tất cả chúng nhất thiết phải được mã hóa trong Base64.

Lệnh THƯ

Lệnh MAIL được sử dụng để thiết lập phiên email với máy chủ sau khi lệnh HELO được gửi. Nó cho biết nó đến từ ai tin nhăn nay. Định dạng lệnh MAIL như sau:

Đường dẫn ngược MAIL

Đối số đường dẫn ngược không chỉ chỉ định người gửi tin nhắn mà còn chỉ định tuyến đường mà tin nhắn có thể được gửi lại nếu không thể gửi được. Nếu người gửi là người dùng trên máy khách đã khởi tạo phiên SMTP thì định dạng lệnh sẽ như sau:

THƯ ĐẾN TỪ: [email được bảo vệ]

Lưu ý rằng trường TỪ chỉ định địa chỉ email của người gửi thư, bao gồm tên đầy đủ của máy chủ khách. Thông tin này phải có trong trường TỪ của thư (nhưng sẽ nói thêm về điều đó sau). Nếu như tin nhắn bưu chínhđược chuyển qua một số nút trên đường từ người gửi đến người nhận, sau đó mỗi nút sẽ thêm thông tin về chính nó vào trường . Bằng cách này, đường dẫn của thư qua máy chủ thư được ghi lại. Thông thường, email từ các máy khách trong mạng riêng phải đi qua một số máy chủ email trước khi đến được Internet. Thông tin chứa trong trường đường dẫn ngược thường hữu ích trong việc khắc phục sự cố trong hệ thống email hoặc xác định các máy chủ thư đang cố gắng ẩn danh tính của chúng bằng cách gửi thư qua các máy chủ SMTP không xác định.

Đội RCPT

Lệnh RCPT chỉ định người nhận tin nhắn. Nhiều người dùng có thể nhận được cùng một tin nhắn. Thông thường, mỗi người nhận được chỉ định trên một dòng riêng biệt bằng lệnh RCPT. Định dạng lệnh RCPT như sau:

Đường chuyển tiếp RCPT

Đối số đường dẫn chuyển tiếp chỉ định nơi email được chuyển tiếp. Thông thường, điều này sẽ bao gồm địa chỉ email đầy đủ nhưng cũng có thể bao gồm tên người dùng máy chủ SMTP cục bộ. Ví dụ hãy xem xét lệnh sau:

RCPT ĐẾN: haley

Lệnh này chỉ định rằng tin nhắn sẽ được gửi đến người dùng haley trên máy chủ SMTP xử lý tin nhắn. Theo cách tương tự, bạn có thể gửi tin nhắn đến người dùng của các máy tính khác không phải là người dùng máy chủ SMTP mà tin nhắn được gửi đến. Ví dụ, hãy xem xét lệnh sau:

RCPT ĐẾN: [email được bảo vệ]

Lệnh được gửi đến máy chủ SMTP có tên shardrach.smallorg.org buộc máy chủ quyết định có gửi thư hay không. Vì người dùng chưa được đăng ký trên Máy chủ cục bộ shardrach thì máy chủ sẽ phải xác định phải làm gì với tin nhắn tiếp theo. Trong trường hợp này, có ba hành động có thể thực hiện được đối với máy chủ shardrach. Chúng ta hãy xem xét kỹ hơn về họ.

    Máy chủ shardrach có thể chuyển tiếp tin nhắn đến người nhận và trả lại phản hồi khẳng định cho người gửi (OK). Trong trường hợp này anh ta thêm tên của mình vào trường MAIL ra lệnh đưa nó vào lộ trình thư nếu cần để thông báo cho người gửi.

    Shardrach máy chủ không thể chuyển tiếp tin nhắn và thông báo cho người gửi, đồng thời xác nhận rằng địa chỉ máy chủ Meshach.smallorg.org là chính xác. Vì vậy, người gửi có thể thử gửi lại tin nhắn trực tiếp đến Meshach.smallorg.org.

    Phân đoạn máy chủ không thể chuyển tiếp tin nhắn và gửi thông báo rằng thao tác này không thể thực hiện được với máy chủ này. Sau đó, quản trị viên hệ thống sẽ phân tích lý do của những gì đã xảy ra.

Trong những ngày đầu của Internet, thông lệ là gửi email một cách mù quáng giữa các máy tính trên khắp thế giới sử dụng thuật toán nhắn tin email gốc.

Lệnh DỮ LIỆU

Lệnh này là lệnh chính trong giao thức SMTP. Sau khi xử lý các lệnh MAIL và RCPT, lệnh DATA được sử dụng để truyền phần thông tin của tin nhắn. Định dạng lệnh DATA như sau:

Mọi thứ theo sau lệnh này được hiểu là một thông báo được truyền đi. Máy chủ SMTP thường gắn thêm tiêu đề thư với thông tin về dấu thời gian và đường dẫn trả về. Chương trình máy khách cho biết phần cuối của tin nhắn bằng cách chuyển một dòng theo sau là một dấu chấm. Định dạng của dòng này như sau:

.

Sau khi nhận được chuỗi này, máy chủ SMTP "hiểu" rằng quá trình truyền tin nhắn đã hoàn tất và sẽ trả về mã phản hồi để thông báo cho khách hàng rằng tin nhắn của nó đã được chấp nhận.

lệnh GỬI

Lệnh SEND được sử dụng để gửi thư trực tiếp đến thiết bị đầu cuối của người dùng đã đăng ký của hệ thống. Lệnh này chỉ được thực thi khi người dùng đăng nhập và thường là một thông báo bật lên, tương tự như lệnh ghi trong UNIX. Lệnh này có một nhược điểm nghiêm trọng: với sự trợ giúp của nó, người dùng bên ngoài có thể dễ dàng xác định ai đang ở trong khoảnh khắc này nằm trong hệ thống. “Cơ hội” này từ lâu đã bị tin tặc tích cực khai thác để lấy ID người dùng Internet từ những nạn nhân không nghi ngờ đã đăng nhập vào hệ thống. Do các mối đe dọa an ninh, hầu hết gói phần mềmđể làm việc với SMTP không còn chứa lệnh này nữa.

Lệnh RSET

Lệnh RSET là viết tắt của reset. Nếu máy khách bối rối về các phản hồi mà nó nhận được từ máy chủ hoặc quyết định rằng kết nối đã bị mất, nó có thể đưa ra lệnh RSET và đưa phiên về điểm bắt đầu - thực thi lệnh HELO. Trong trường hợp này, tất cả các lệnh đã gửi trước đó - MAIL, RCPT và DATA sẽ bị hủy. Rất thường xuyên lệnh này được sử dụng như một lệnh " phương sách cuối cùng" khi máy khách mất chuỗi lệnh hoặc nhận được phản hồi không mong muốn từ máy chủ.

VRFY

Lệnh VRFY là viết tắt của xác minh. Nó có thể được sử dụng để xác định xem máy chủ có thể gửi thư đến một người nhận cụ thể hay không trước khi thực hiện lệnh RCPT. Định dạng của lệnh này như sau:

tên người dùng VRFY

Khi chấp nhận lệnh này, máy chủ SMTP sẽ xác định xem nó có người dùng trên máy chủ cục bộ hay không Tên. Nếu tìm thấy người dùng như vậy, máy chủ sẽ trả về phản hồi đầy đủ địa chỉ bưu điện người dùng. Nếu không có người dùng như vậy trên máy chủ cục bộ thì máy chủ SMTP có thể trả về phản hồi tiêu cực cho máy khách hoặc cho biết rằng nó sẽ chuyển tiếp tất cả tin nhắn tới người dùng từ xa. Điều này phụ thuộc vào việc máy chủ SMTP có chuyển tiếp tin nhắn đến máy khách từ xa hay không.

Lệnh VRFY có thể là một công cụ hiệu quả khi khắc phục sự cố email. Rất thường xuyên, khi gửi email, người dùng viết sai chính tả tên đích hoặc tên máy chủ và sau đó thắc mắc tại sao thư của họ không được nhận. Tất nhiên, điều đầu tiên họ sẽ làm là khiếu nại với quản trị viên hệ thống bưu chínhđến hiệu suất kinh khủng của hệ thống email. Với tư cách là quản trị viên hệ thống email, bạn có thể kiểm tra chức năng của địa chỉ email theo hai cách. Đầu tiên, sử dụng lệnh máy chủ DNS, lệnh này cho phép bạn xác định tính chính xác của tên miền và sự hiện diện của máy chủ thư phục vụ miền đó. Và thứ hai, bạn có thể đi với sử dụng telnet tới cổng 25 của máy chủ thư và sau đó đưa ra lệnh VRFY, lệnh này sẽ xác định xem tên người dùng có đúng hay không. Liệt kê 5.3 cho thấy một ví dụ về cách sử dụng lệnh VRFY để xác thực tên người dùng.

1 [riley@ shadrach riley] $ telnet localhost 25 2 Đang thử 127.0.0.1... 3 Đã kết nối với localhost. 4 Ký tự thoát là "^]" . 5 220 shadrach.smallorg.org ESMTP Gửi thư 8.9.3/ 8.9.3; Thứ năm, 26/08/1999 19:20:16 -050 6 HELO localhost 7 250 shadrach.smallorg.org Xin chào localhost [127.0.0.1], rất vui được gặp các bạn 8 VRFY giàu 9 250< rich@ shadrach,smallorg.org>10 VRFY prez@ mechach.smallorg.org 11 252< prez@ mechach.smallorg.org>12 VRFY jessica 13 550 jessica... Người dùng không xác định 14 QUIT 15 221 shadrach.smallorg.org đóng kết nối 16 Kêt nôi bị đong bởi - chủ nhà nước ngoài. 17 [riley@shadrach riley]$

Dòng 8-13 hiển thị đầu ra của lệnh VRFY. Dòng 8 cố gắng thực hiện VRFY trên người dùng cục bộ giàu có. Phản hồi của máy chủ SMTP ở dòng 9 xác nhận rằng người dùng có tên đó tồn tại trong hệ thống và địa chỉ email đầy đủ của khách hàng sẽ được trả về. Dòng 10 hiển thị một tùy chọn khác để chỉ định lệnh VRFY. Ở đây, máy khách cố gắng đưa ra lệnh VRFY cho người dùng trên máy tính từ xa. Phản hồi nhận được ở dòng 11 từ hệ thống shadrach khác với kết quả nhận được ở dòng 9. Phần Phản hồi của Máy chủ thảo luận chi tiết hơn về ý nghĩa của các mã được máy chủ trả về. Trong trường hợp của chúng tôi, hãy lưu ý rằng hệ thống shadrach sẽ thông báo cho khách hàng rằng thư sẽ được chuyển tiếp đến người dùng trước đó. máy chủ từ xa Meshach.smallorg.org. Dòng 12 thể hiện nỗ lực kiểm tra tên không tồn tại trong hệ thống lưới. Phản hồi của máy chủ SMTP trên dòng 13 là tự giải thích.

    Kiểm tra sự tồn tại của người dùng bằng cách sử dụng bash và Curl. $echo -e "VRFY [email được bảo vệ]\nBỎ"| Curl telnet:// mail.example.com:25 220 mail.1-talk.com ESMTP Postfix 252 2.0.0 tên người dùng@ example.com 221 2.0.0 Tạm biệt

Nhóm NOOP

Lệnh NOOP là viết tắt của không hoạt động. Lệnh này không có tác dụng trên máy chủ SMTP ngoại trừ việc máy chủ trả về mã phản hồi tích cực cho nó. Nó được sử dụng khi kiểm tra kết nối mà không chuyển tiếp tin nhắn.

Lệnh QUIT

Lệnh QUIT thực hiện chính xác những gì nó nói, tức là. báo cho máy chủ SMTP rằng máy khách đã kết thúc phiên hiện tại và muốn đóng kết nối. Máy chủ SMTP phải phản hồi lệnh này, sau đó khởi tạo và đóng kết nối TCP. Nếu máy chủ chấp nhận lệnh QUIT trong khi truyền thư thì tất cả dữ liệu được truyền trong phiên phải bị hủy và sẽ không đến được người nhận.

Định dạng tin nhắn (Email)

Các trường tiêu đề tiêu chuẩn theo RFC 822

RFC 822 yêu cầu một tin nhắn được chia thành hai phần. Phần đầu tiên được gọi là tiêu đề. Tất cả dữ liệu xác định tin nhắn được nhập vào nó. Phần thứ hai được gọi là nội dung của tin nhắn. Tiêu đề bao gồm các trường dữ liệu được sử dụng làm thông tin bổ sung cần thiết trong tin nhắn. Các trường tiêu đề và nội dung của tin nhắn phải được phân tách bằng một dòng trống. Không có thứ tự cụ thể cho các trường tiêu đề, tức là. Các trường tiêu đề có thể được đặt theo bất kỳ thứ tự nào. Ngoài ra, các trường tiêu đề có thể được lặp lại trong cùng một thông báo. Hình vẽ cho thấy hình thức chung thư đáp ứng các yêu cầu của RFC 822.

Định dạng tin nhắn theo RFC 822

    Trường tiêu đề đã nhận

Định dạng trường tiêu đề Đã nhận: như sau:

Đã nhận: từ tên máy chủ theo tên máy chủ thông qua đường dẫn vật lý với id giao thức message-id cho đích e-mail cuối cùng

Trường Tiêu đề đã nhận được sử dụng để xác định các máy chủ SMTP có liên quan đến quá trình gửi thư từ người gửi đến người nhận. Mỗi máy chủ thêm trường Đã nhận của riêng mình vào thư, cho biết thông tin cụ thể về chính nó. Các trường con trong trường Đã nhận cho biết đường dẫn, giao thức và máy tính tham gia truyền tin nhắn.

    Trường tiêu đề Đường dẫn trả về

Định dạng của trường tiêu đề này như sau:

Đường dẫn trả về: tuyến đường

Máy chủ SMTP cuối cùng trong chuỗi chuyển tiếp sẽ thêm trường Đường dẫn trả về vào thư. Mục đích của nó là xác định lộ trình mà tin nhắn đến được người nhận. Nếu tin nhắn được gửi trực tiếp đến máy chủ của người nhận thì chỉ có một địa chỉ được hiển thị trong trường này. Nếu không nó sẽ hiển thị ở đây danh sách đầy đủ máy chủ mà thông điệp được chuyển qua đó để đến được người nhận. Có thể khác với MAIL FROM (nghĩa là địa chỉ trả lại có thể được chỉ định khác với địa chỉ của người gửi).

    Trường tiêu đề của người khởi tạo

Trường Người khởi tạo cho biết địa chỉ của người gửi tin nhắn. Thông tin này rất hữu ích trong trường hợp tin nhắn bị mạng riêng từ chối nhiều lần trước khi chúng được đưa lên Internet. Định dạng của trường này như sau:

Trả lời: địa chỉ

Trường Originator chỉ là một trường phụ trợ nhỏ trong các trường tiêu đề nhiều màu. Nó có thể được sử dụng như một cách dễ dàng cho các gói SMTP nhỏ. Điều này giúp loại bỏ sự cần thiết của các trường tiêu đề phức tạp hơn để xác định người gửi.

    Trường tiêu đề gửi lại

Trường tiêu đề Gửi lại xác định một thư mà vì lý do nào đó mà khách hàng phải gửi lại. Định dạng của trường này như sau:

Gửi lại-Trả lời-Tới: địa chỉ

    Các trường tiêu đề xác thực

Dữ liệu trường tiêu đề xác định người gửi email. Định dạng trường xác thực:

Từ: tên người gửi Người gửi: tên người dùng

Trường From: xác định tác giả của tin nhắn. Thông thường, các trường From: và Sender: là cùng một người dùng, vì vậy chỉ một trong các trường này thực sự là bắt buộc. Trong trường hợp người gửi thư không phải là tác giả của thư mà nó chỉ được gửi từ địa chỉ của người đó, cả hai trường vẫn phải được chỉ định - điều này đảm bảo rằng thư sẽ được trả lại cho người gửi nếu không thể gửi đến người nhận . Các trường tiêu đề xác thực gửi lại

Các trường xác thực gửi lại xác định người gửi tin nhắn đã được chương trình khách truyền lại vì một số lý do. Định dạng của các trường này như sau:

Gửi lại-Từ: ngày-giờ Gửi lại-Người gửi: ngày-giờ Các trường Gửi lại từ: và Gửi lại-Người gửi: hoạt động tương tự như các trường Từ: và Người gửi:. Chúng chỉ phản ánh rằng tin nhắn đã được khách hàng truyền lại mà không rõ lý do.

Các trường tiêu đề ngày

Các trường tiêu đề ngày được sử dụng để đặt dấu thời gian trên tin nhắn khi nó được truyền từ máy khách đến máy chủ. Các trường Ngày có định dạng sau:

Date: date-time Resent-Date: date-time Trường Date: sẽ chuyển tiếp thông tin trong tiêu đề thư chính xác như thư gốc. Tùy chọn này có thể hữu ích khi theo dõi thời gian phản hồi, đặc biệt là nhiều phản hồi.

    Các trường tiêu đề đích

Các trường tiêu đề Đích cho biết địa chỉ email của người nhận thư. Những lĩnh vực này hoàn toàn là thông tin. Trong mọi trường hợp, máy chủ SMTP sẽ không gửi tin nhắn đến hộp thư của người dùng cho đến khi nhận được lệnh RCPT được cấp cho người dùng đó (xem phần " Các lệnh cơ bản Máy khách SMTP"). Định dạng của các trường này như sau:

Tới: địa chỉ Resent-To: địa chỉ CC: địa chỉ Resent-CC: địa chỉ BCC: địa chỉ Resent-BCC: địa chỉ

Các trường To:, CC: và BCC: đặt thuật toán xử lý email tiêu chuẩn. Hầu hết các gói email đều sử dụng thuật ngữ này để phân loại người nhận thư. Trường CC: Tương tự như một bản ghi nhớ và những người nhận được chỉ định trong đó sẽ nhận được một "bản sao" của tin nhắn. Một khái niệm mới khác được hệ thống email giới thiệu là BCC: hoặc bản sao mù. Trường "bản sao vô hình" cũng cho biết người nhận bản sao của tin nhắn, nhưng người ngoài không nhìn thấy địa chỉ của người đó (điều này không hoàn toàn trái đạo đức). Đã có một số tranh luận về tùy chọn này liên quan đến đạo đức máy tính, nhưng ngày nay hầu hết tất cả các chương trình e-mail đều hỗ trợ tính năng này.

    Các trường tiêu đề tùy chọn

Các trường tùy chọn là các trường xác định thông báo chi tiết hơn tới máy chủ SMTP, nhưng theo RFC 822, có thể không có trong thông báo. Tuy nhiên, những lĩnh vực này hiện nay đã phổ biến rộng rãi và nhiều bạn sẽ phải xử lý chúng. Định dạng của một số trong số chúng như sau:

Message-ID: message-id Resent-Message-ID: message-id In-Reply-To: message-id Tham khảo: message-id Từ khóa: text - list Chủ đề: text Bình luận: text Đã mã hóa: word

Hữu ích nhất và được sử dụng thường xuyên nhất trong bộ này là trường Chủ đề:. Hầu hết các chương trình email đều cho phép người gửi nhập dòng chủ đề một dòng mô tả nội dung thư gửi đến người nhận. Dòng văn bản này được sử dụng khá thường xuyên chương trình thư khách khi tạo danh sách các tin nhắn đã nhận. Một trường tùy chọn khác cũng giúp xác định thư. Trường này là Message-ID: (Mã định danh tin nhắn). Trường này gán một số nhận dạng duy nhất cho tin nhắn, số này sau đó có thể xuất hiện trong tin nhắn được trả về. Trường mã hóa đặc biệt Được mã hóa: cho biết tin nhắn đã được mã hóa vì mục đích bảo mật hay chưa và trong Từ khóa: bạn có thể chỉ định các từ khóa có thể được sử dụng trong tìm kiếm văn bản cụ thể, xảy ra trong (các) tin nhắn.

Dữ liệu nhị phân và MIME

Thuật toán mã hóa MIME tính đến loại tệp nhị phân được chuyển đổi và cũng truyền thông tin thêm về tập tin cho bộ giải mã. Thuật toán MIME cho phép dữ liệu nhị phân được đặt trực tiếp vào thư tiêu chuẩn, như được xác định bởi RFC 822. Năm trường tiêu đề mới đã được tạo để mô tả dữ liệu nhị phân được nhúng trong thư định dạng RFC 822. Các chương trình thư hỗ trợ tiêu chuẩn MIME phải xử lý chính xác tất cả các loại tiêu đề mới này.

    Trường tiêu đề phiên bản MIME

Trường tiêu đề tùy chọn đầu tiên chứa phiên bản MIME mà người gửi đã sử dụng khi mã hóa tin nhắn. Hiện tại trường này luôn là 1.0.

    Trường Mã hóa-Chuyển nội dung

Trường tiêu đề Mã hóa truyền nội dung chỉ định cách dữ liệu nhị phân được đưa vào tin nhắn văn bản ASCII. Hôm nay có bảy theo nhiều cách khác nhau mã hóa dữ liệu nhị phân, nhưng mã hóa base64 là phổ biến nhất. Phương pháp mã hóa này chuyển đổi các khối dữ liệu nhị phân 6 bit thành các khối 8 bit được đọc dưới dạng văn bản ASCII.

    Trường ID nội dung

Trường tiêu đề này được sử dụng để xác định các phiên MIME bằng mã ID cụ thể khi nội dung phức tạp.

    Trường Nội dung-Mô tả

Trường tiêu đề Nội dung-Mô tả được sử dụng để mô tả văn bảnở định dạng ASCII của dữ liệu được đặt trong thư. Điều này thuận tiện khi gửi tài liệu được tạo bằng cách sử dụng xử lý văn bản hoặc đồ họa không khác gì mã hóa base64.

Trường tiêu đề loại nội dung

    Trường tiêu đề loại nội dung

Trường tiêu đề này là nơi diễn ra hành động chính trong vở kịch của chúng ta. Trường này xác định dữ liệu chứa trong thông báo MIME. Hiện tại có bảy lớp dữ liệu chính được xác định trong MIME. Mỗi lớp có các lớp con riêng, mô tả chi tiết hơn loại dữ liệu có trong tin nhắn.

Kiểu dữ liệu văn bản xác định dữ liệu ASCII cần được đọc ở dạng thô. Ở đây cũng có hai lớp con - văn bản thuần túy, tức là văn bản ASCII không được định dạng và văn bản được làm giàu, bao gồm các thành phần định dạng tương tự như định dạng văn bản được làm giàu. Các chương trình email mới nhất thậm chí có thể xử lý Định dạng văn bản đa dạng thức (RTF).

Kiểu dữ liệu thư cho phép chương trình email gửi các thư đơn giản ở định dạng RFC 822. Các lớp con của loại này là rfc822, cho biết rằng tệp đính kèm là tin nhắn thường xuyên, phù hợp với RFC 822; một phần, cho phép bạn chia tin nhắn dài thành nhiều phần và phần thân bên ngoài, cho phép bạn đặt con trỏ tới một đối tượng không phải là một phần của tin nhắn.

Kiểu dữ liệu hình ảnh chỉ định việc đính kèm dữ liệu nhị phân vào một tin nhắn, đại diện cho hình ảnh đồ họa. Hiện tại có hai lớp con được xác định cho loại này - jpeg và gif.

Theo đó, kiểu dữ liệu video chỉ định rằng dữ liệu được đính kèm trong tin nhắn là dữ liệu video. Hiện tại chỉ có một lớp con được xác định cho loại này, định dạng mpeg.

Kiểu dữ liệu âm thanh chỉ định nội dung tin nhắn là dữ liệu âm thanh ( tập tin âm thanh). Ở đây cũng vậy, cho đến nay chỉ có một lớp con cơ bản được xác định, tương ứng với một kênh ISDN có tần số lấy mẫu là 8 KHz.

Kiểu dữ liệu ứng dụng tương ứng với dữ liệu nhị phân được đính kèm với thông báo là ứng dụng (ví dụ: bảng tính Microsoft Excel hoặc tài liệu được tạo bằng văn bản bộ xử lý Microsoft Từ). Cho đến nay, hai lớp con của loại dữ liệu này đã được xác định - postscript và octet-stream. Lớp con dòng octet thường được sử dụng khi đính kèm dữ liệu ứng dụng vào một tin nhắn, chẳng hạn như tài liệu của Microsoft Bảng tính Word hoặc Microsoft Excel.

Kiểu dữ liệu nhiều phần xác định các thông báo chứa một số loại dữ liệu khác nhau. Hình thức này khá phổ biến ở chương trình thư, hỗ trợ xuất tin nhắn theo nhiều cách, chẳng hạn như văn bản ASCII, văn bản HTML hoặc tệp âm thanh. Mã định danh ranh giới phân tách các loại dữ liệu khác nhau. Đồng thời, mỗi loại dữ liệu được xác định bởi một trường tiêu đề loại dữ liệu cụ thể. Kiểu dữ liệu nhiều phần có bốn lớp con.

Lớp con hỗn hợp chỉ ra rằng mỗi phần của tin nhắn là độc lập và tất cả phải được trình bày cho người nhận theo thứ tự mà chúng được người gửi chèn vào. Lớp con song song chỉ ra rằng mỗi phần của tin nhắn là độc lập và tất cả chúng có thể được trình bày tới người nhận theo bất kỳ thứ tự nào. Lớp con tiếp theo, lớp thay thế, xác định rằng tất cả các phần của thông báo đều có cùng dữ liệu nhưng được trình bày dưới một dạng khác. Trong trường hợp này, người nhận có thể chọn phương tiện tốt nhất để xem dữ liệu đã nhận. Lớp con thông báo có nhiều điểm tương tự như lớp con hỗn hợp, nhưng chỉ rõ rằng nội dung thông báo luôn được thể hiện ở định dạng RFC822.

1 $ telnet localhost 25 2 Đang thử 127.0.0.1... 3 Đã kết nối với localhost. 4 Ký tự thoát là "^]". 5 220 shadrach.smallorg.org ESMTP Gửi thư 8.9.3/8.9.3; Thứ Hai, 30/08/1999 07:36:58 -050 6 HELO localhost 7 258 shadrach.smallorg.org Xin chào localhost, rất vui được gặp bạn 8 MAIL FROM:rich@localhost 9 250 rich@localhost... Người gửi ok 10 RCPT ĐẾN: giàu 11 250 giàu... Người nhận ok 12 DỮ LIỆU 13 354 Nhập thư, kết thúc bằng "." trên một dòng riêng 14 Từ:"Rich Blum" 15 Tới: "giàu có" 16 Chủ đề:Kiểm tra tin nhắn văn bản được định dạng 17 Phiên bản MIME: 1.0 18 Loại nội dung: nhiều phần/thay thế; ranh giới=bounds1 19 20 –bounds1 21 Loại nội dung: văn bản/thuần túy; charset=us-ascii 22 23 Đây là phần văn bản đơn giản của tin nhắn mà các trình đọc e-mail đơn giản có thể đọc được. 25 26 –-bounds1 27 Loại ngữ cảnh: văn bản/được làm giàu 28 29 Đây là văn bản phong phú phiên bản của NHƯ NHAU tin nhắn. 30 31 –-giới hạn1-- 32 . 33 250 MAA04305 Tin nhắn được chấp nhận gửi 34 QUIT 35 221 shadrach.smallorg.org đóng kết nối 36 Kết nối bị đóng bởi máy chủ nước ngoài. 37 Bạn có thư mới trong /var/spool/mail/rich 38 $

Liệt kê 5.6. Phiên SMTP mẫu có nhiều phần đính kèm MIME (html, txt) Thông báo ví dụ hiển thị trong Liệt kê 5.6 là một thông báo MIME có hai phần. Dòng 18 hiển thị kiểu dữ liệu của tin nhắn. Loại nhiều phần/thay thế cho biết rằng thông báo chứa các loại dữ liệu khác nhau được phân tách bằng dấu phân cách giới hạn1. Loại dữ liệu đầu tiên bắt đầu ở dòng 21 và là văn bản ASCII đơn giản mà hầu hết mọi chương trình email đều có thể đọc được.

Loại dữ liệu thứ hai bắt đầu ở dòng 27 và là văn bản có định dạng sử dụng định dạng văn bản có định dạng.

Vì loại MIME được chỉ định cho thư là nhiều phần/thay thế nên việc xác định phiên bản nào của tệp đính kèm sẽ hiển thị hoàn toàn tùy thuộc vào chương trình email.

Giao thức SMTP nâng cao

Kể từ khi được giới thiệu vào năm 1982, giao thức SMTP đã thực hiện rất tốt việc gửi tin nhắn giữa các máy tính trên Internet. Tuy nhiên, theo thời gian, những hạn chế vốn có trong giao thức này trở nên đáng chú ý. Sau đó, thay vì thay thế giao thức chuẩn được sử dụng rộng rãi vào thời điểm đó, người ta quyết định cải thiện một số chức năng của giao thức SMTP. Đồng thời, người ta đã quyết định giữ nguyên tất cả các thông số kỹ thuật của SMTP ở dạng ban đầu và chỉ thêm các chức năng mới vào chúng.

Năm 1995, RFC 1869 được phát hành, xác định một phương pháp mở rộng khả năng của giao thức SMTP, được gọi là "Dịch vụ SMTP nâng cao".

SMTP mở rộng được triển khai như sau. Khi bắt đầu phiên SMTP, lệnh HELO đã được thay thế bằng lệnh mời - EHLO. Khi máy chủ SMTP nhận được lệnh như vậy, điều đó có nghĩa là máy khách có thể gửi các lệnh SMTP mở rộng tới nó. Liệt kê 5.7 hiển thị một phiên ví dụ sử dụng EHLO cũng như các lệnh bổ sung.

1 $ telnet localhost 25 2 Đang thử 127.0.0.1... 3 Đã kết nối với localhost. 4 Ký tự thoát là "^]". 5 220 shadrach.smallorg.org ESMTP Gửi thư 8.9.3/8.9.3; Thứ Hai, 30/08/1999 16:36:48 -050 6 EHLO localhost 7 250-shadrach.smallorg.org Xin chào localhost, rất vui được gặp bạn 8 250-EXPN 9 250-VERB 10 250-8BITMIME 11 250-SIZE 12 250-DSN 13 250-ONEX 14 250-ETRN 15 250-XUSR 16 250 TRỢ GIÚP 17 TRỢ GIÚP DSN 18 214-MAIL TỪ: [ RET=( ĐẦY ĐỦ || HDRS) ] [ ENVID= ] 19 214-RCPT GỬI: [ THÔNG BÁO=(KHÔNG BAO GIỜ, THÀNH CÔNG, THẤT BẠI, TRÌ HOÃN)] 20 214- [ ORCPT= ] 21 214- Thông báo trạng thái gửi SMTP. 22 214-Mô tả: 23 214- RET Trả lại toàn bộ tin nhắn hoặc chỉ tiêu đề. 24 214- ENVID "Số nhận dạng phong bì" của người gửi để theo dõi. 25 214- THÔNG BÁO Khi nào gửi DSN. Nhiều tùy chọn đều được, dấu phẩy - 26 214- phân cách. KHÔNG BAO GIỜ phải xuất hiện một mình. 27 214- ORCPT Người nhận gốc. 28 214 Thông tin kết thúc TRỢ GIÚP 29 TRỢ GIÚP ETRN 30 214-ETRN [ | @ | #] 31 214- Chạy hàng đợi cho các đối tượng được chỉ định hoặc 32 214- tất cả các máy chủ trong một địa chỉ nhất định , hoặc một số có tên đặc biệt là 33 214- (dành riêng cho việc thực hiện). 34 214 Kết thúc thông tin TRỢ GIÚP 35 QUIT 36 221 shadrach.smallorg.org đóng kết nối 37 Kết nối bị đóng bởi máy chủ nước ngoài. $38

Dòng 6 chỉ định lệnh SMTP EHLO để kết nối với máy chủ SMTP. Dòng 7–16 hiển thị phản hồi của máy chủ. Lưu ý rằng máy chủ báo hiệu rằng có nhiều lệnh hơn để sử dụng, tức là. Phiên diễn ra ở chế độ "mở rộng". Một trong những nhóm lệnh mới được gọi là tham số Thông báo trạng thái phân phối. Các tham số này có thể được sử dụng cùng với lệnh MAIL và RCPT để hiển thị trạng thái gửi của một email cụ thể. Tuy nhiên, đối với chúng tôi với tư cách là quản trị viên của hệ thống thư, lệnh ETRN được quan tâm nhiều nhất.

Lệnh TURN đã được đề cập trước đó. Lệnh này rất hiệu quả nhưng tiếc là không an toàn. Để bù đắp cho thiếu sót này, RFC 1985 xác định cách triển khai mới của lệnh TURN nhằm mang lại tính bảo mật cao hơn. Lệnh ETRN cho phép máy khách SMTP đưa ra yêu cầu đến máy chủ SMTP để bắt đầu một kết nối SMTP khác với máy khách để gửi tin nhắn đến máy chủ đó. Sự khác biệt duy nhất giữa lệnh ETRN và lệnh TURN là yêu cầu không sử dụng kết nối hiện có mà yêu cầu mở một phiên SMTP mới. Bằng cách này, máy chủ SMTP có thể kết nối với máy khách bằng thuật toán phân giải tên DNS thông thường. Trong trường hợp này, việc mở một kết nối mới không dựa trên tên mà máy khách được đăng ký trên máy chủ mà dựa trên tên thật máy chủ của khách hàng. Trong trường hợp này, nếu hacker thiết lập kết nối SMTP trái phép và sử dụng lệnh ETRN, máy chủ SMTP sẽ chỉ thiết lập kết nối mới với khách hàng thực sự và chuyển tiếp cho anh ấy một email. Kết quả là không có thương vong. Định dạng lệnh ETRN như sau:

Ở đây, vai trò của tên có thể là tên máy chủ hoặc tên miền (nếu có yêu cầu nhận mail cho toàn bộ miền). Nhóm ETRN là sự trợ giúp rất tốt cho quản trị viên email. Nếu nhà cung cấp dịch vụ Internet lưu trữ thư cho máy chủ thư của bạn, thì bằng cách sử dụng lệnh này, bạn có thể thông báo rằng nó đã sẵn sàng nhận thư được thu thập cho bạn. Có một số cách để thực hiện một thuật toán như vậy. Một trong số đó là sử dụng chương trình Perl đặc biệt đi kèm với chương trình sendmail. Công việc của nó chính xác là sau khi thiết lập kết nối với nhà cung cấp Internet, nó sẽ đưa ra lệnh ETRN với tên miền của bạn làm đối số. Sau khi nhận được lệnh này, máy chủ SMTP của nhà cung cấp sẽ khởi tạo một kết nối SMTP khác với máy chủ SMTP cục bộ của bạn (qua cùng một kết nối PPP) và gửi tất cả thư dành cho miền của bạn mà nó có trong hàng đợi gửi.

Các độc giả blog thân mến, đã lâu rồi tôi không viết bài mới, nhưng đây là lý do khách quan. Tôi rất vui vì bạn tiếp tục bình luận về các bài viết trước của tôi và vẫn là độc giả của blog của chúng tôi. Mình sẽ cố gắng liên lạc với các bạn trong thời gian sắp tới và mang đến cho các bạn nhiều bài viết thú vị và hữu ích. Bài viết hôm nay sẽ dành riêng cho các máy chủ SMTP, thứ không thể thiếu trong bản tin email tin nhắn.

SMTP là một giao thức chịu trách nhiệm nhận tin nhắn có nguồn gốc từ người dùng và truyền chúng đến một người nhận cụ thể. Tin nhắn luôn đi qua nhiều máy chủ để đến đích và SMTP đơn giản hóa quy trình này.

Giả sử bạn đang gửi tin nhắn đến một người nhận cụ thể. ID email của bạn, ví dụ: “người dùng” và bạn có tài khoản được đăng ký tại “mail.ru” – “ [email được bảo vệ]" Địa chỉ của người nhận - " [email được bảo vệ]».

Khi bạn tạo tài khoản trên dịch vụ thư mail.ru, ứng dụng thư khách của bạn (ví dụ: Microsoft Outlook) cài đặt tài khoản được lưu tự động. Chuyện gì xảy ra tiếp theo:

  1. Ứng dụng thư khách liên lạc với máy chủ thư Mail.ru của bạn qua cổng 25.
  2. Ứng dụng thư khách giao tiếp với máy chủ SMTP của máy chủ thư, cung cấp cho nó địa chỉ người gửi và người nhận cũng như nội dung của thư.
  3. Máy chủ SMTP chia địa chỉ người nhận thành hai phần: tên/thông tin đăng nhập (người nhận) của người nhận và tên miền (gmail.com).
  4. Máy chủ SMTP “giao tiếp” với máy chủ DNS ( Tên miền Server) và nhận thông tin về địa chỉ IP của máy chủ SMTP gmail.com của người nhận. DNS phản hồi bằng cách gửi một hoặc nhiều địa chỉ IP của máy chủ SMTP mà gmail.com sử dụng.
  5. Máy chủ SMTP trên mail.ru liên hệ với máy chủ SMTP gmail.com qua cổng 25 và gửi tin nhắn tới nó. Máy chủ SMTP gmail.com xác định rằng tên miền của "người nhận" tồn tại trên gmail.com và chuyển tin nhắn POP3 đến máy chủ gmail.com, máy chủ này sẽ đặt tin nhắn vào hộp thư của người nhận.
  6. Nếu vì lý do nào đó mà máy chủ SMTP mail.ru không thể liên lạc với máy chủ SMTP gmail.com thì thư sẽ được đưa vào hàng đợi gửi. Máy chủ SMTP thường sử dụng người gửi tin nhắn để gửi lại các tin nhắn đang trong hàng đợi. Người gửi tin nhắn sẽ cố gắng gửi tin nhắn trong hàng đợi theo định kỳ. Các nỗ lực sẽ được lặp lại trong những khoảng thời gian nhất định (ví dụ: 15 phút). Sau bốn giờ chờ đợi và cố gắng gửi, chương trình thường gửi cho người gửi một lá thư thông báo về lỗi gửi. Sau năm ngày, hầu hết các chương trình gửi sẽ ngừng thử và trả lại email cho người gửi dưới dạng chưa gửi.

Trong trường hợp máy chủ SMTP nguồn (mail.ru) không thể giao tiếp trực tiếp với máy chủ SMTP gmail.com, nó sẽ truyền thông báo qua một hoặc nhiều máy chủ SMTP chuyển tiếp trung gian. Lần lượt, máy chủ chuyển tiếp (relay) nhận Tin nhắn gốc và sau đó gửi nó đến máy chủ đích hoặc chuyển hướng nó đến một máy chủ chuyển tiếp khác. Quá trình lặp lại cho đến khi tin nhắn được gửi hoặc cho đến khi hết thời gian và số lần thử lại được chỉ định để chờ phản hồi từ máy chủ.

Máy chủ SMTP hiểu các lệnh văn bản đơn giản. Những cái tiêu chuẩn là:

HELO – bắt đầu phiên

EHLO - bắt đầu phiên và yêu cầu chế độ mở rộng - ESMTP (Nếu máy chủ không hỗ trợ tiện ích mở rộng, nó sẽ phản hồi lỗi EHLO, trong trường hợp này máy khách phải gửi lệnh HELO và không sử dụng tiện ích mở rộng giao thức.)

THƯ TỪ: — địa chỉ người gửi

RCPT TO: - địa chỉ người nhận

DỮ LIỆU – truyền dữ liệu (chữ cái). Các trường “Tới”, “Từ” và “Chủ đề” phải chiếm ba dòng đầu tiên

RSET - thiết lập lại phiên

QUIT – ngắt kết nối

HELP – trợ giúp (thông tin bổ sung)

VRFY – kiểm tra sự tồn tại của một địa chỉ

EXPN – địa chỉ mở rộng