Працюємо з поштою ... вручну

У дитинстві при отриманні в подарунок нової іграшки, напевно, у багатьох виникало пекуче бажання розібрати її, подивитися, що там всередині, дізнатися, як вона працює. І чим дорожче, складніше була іграшка, тим сильніше було таке бажання. У деяких з віком ця риса характеру не зникла.

У цій статті ми "розберемо на частини" електронну пошту. Дійсно, для роботи з нею зовсім не обов'язкові поштові програми, вони просто роблять весь процес комфортніше. Поштові протоколи прості і розраховані радше на людину, ніж на комп'ютер, тому вони легко реалізуються незалежно від платформи і обладнання.

Частина 1 - Формат листа

Існує множина не стандартизованих полів заголовка. Вони починаються з символу X. Це можуть бути такі поля, як X-Mailer: - поштова програма відправника; X-MSMail-Priority :. X-Priority: - пріоритет (важливість) листи і т.д. Ви також можете придумати і використовувати будь-який своє поле, що починається з X-.

Ось приклад звичайного текстового листи:

From: "Tester"

Частина 2 - Отримання пошти

Електронні листи можна отримувати по протоколу POP3 (Post Office Protocol - Version 3). Команди протоколу POP3 складаються зазвичай з 4 букв. Після кожної команди сервер видає відповідь + OK в разі нормального завершення і -ERR в разі помилки. За роботу POP3 відповідає 110 порт.

Для спілкування з поштовим сервером нам знадобиться програма telnet, яка є в складі будь-якої версії Windows. Отже, запускаємо "Пуск" - "Виконати" - набираємо telnet <имя_сервера> <порт>. наприклад:

telnet ezmail.ru 110

Відразу після підключення сервер видасть рядок привітання. Він представився, тепер, згідно з правилами хорошого тону, треба представиться нам. Для цього використовується пара команд USER і PASS. приклад:

USER <ваш логин>

PASS <ваш пароль>

Відразу за відповіддю + OK слідують кількість листів і їх загальний розмір. Для отримання списку листів потрібно ввести команду LIST. В результаті сервер видасть список листів із зазначенням розміру кожного листа. На сервері листи розрізняються за допомогою спеціального ідентифікатора. Як і у всіх багаторядкових відповідях POP3, в кінці списку знаходиться рядок з однієї тільки точкою.

Тепер для звернення до будь-якого конкретного листа ми повинні використовувати його ідентифікатор. Для роботи з листами використовуються команди RETR. DELE і TOP. Команда RETR використовується для отримання листа з сервера. В якості єдиного параметра їй передається ідентифікатор листи, який видала команда LIST.

+OK 417 bytes for admin

From: "Test"

X-Mailer: Microsoft Internet Mail 4.70.1155

Content-Type: text / plain; charset = KOI8-R

Команда DELE використовується, щоб позначити лист для видалення (фізично видалення відбувається при завершенні поштової сесії). Єдиний параметр цієї команди - ідентифікатор листи.

Команда TOP застосовується для тих випадків, коли цілком отримувати лист не треба, достатньо лише перших рядків. Це може використовуватися, наприклад, для фільтрації спаму у заголовках листів, без скачування листи цілком. Перший аргумент команди TOP - це ідентифікатор листи, а другий - кількість рядків тіла листи, які повинні бути отримані разом з заголовком.

Ну і остання команда POP3-протоколу, яка нам знадобиться - це QUIT. Вона сигналізує серверу про завершення поштової сесії. Прийнявши її, сервер завершує з'єднання.

Ось приклад типової поштової сесії по POP3-протоколу:

+OK POP3 server ready

+OK 425 bytes for admin

Для отримання пошти використовують також більш складний протокол IMAP4 (Internet Message Access Protocol - version 4 rev1), але його розгляд не входить в рамки даної статті.

Частина 3 - Відправка пошти

Після встановлення з'єднання SMTP-сервер представляється нам (220 код). Логічно, що ми повинні також представитися йому. Для цього використовується команда HELO. Єдиним її аргументом є ім'я Вашого комп'ютера. Тобто Ви говорите: "Привіт, я - test.kirov.ru".

220-Use of this system for the delivery of UCE (a.k.a. SPAM), or any other

220-message without the express permission of the system owner is prohibited.

220 Use of this system for third party relaying is prohibited.

250 proxy.kirov.ru Hello test.kirov.ru [167.15.230.25], pleased to meet you

MAIL FROM: [email protected]

Далі необхідно вказати одержувача повідомлення. Для цього використовуємо команду RCPT TO :. Якщо одержувачів декілька, то команда RCPT вводиться кілька разів.

Схожі статті

Copyright © 2024