- •М іністерство освіти й науки україни Запорізький національний технічний університет методичні вказівки
- •Загальні відомості
- •Вимоги до оформлення звіту
- •Теоретичні відомості протокол smtp
- •Найпростіший приклад відправки текстового пошти
- •Додаткові команди
- •Формат поштового повідомлення
- •Багатоцільові розширення інтернет пошти (mime)
- •Завдання на виконання
- •Додатоки додаток . Відправка листів через smtp за допомогою php
- •Література
Найпростіший приклад відправки текстового пошти
Насамперед підключаємося до SMTP сервера через порт 25. Тепер треба передати серверу команду HELLO і нашу IP адресу:
C: HELLO 195.161.101.33
S: 250 smtp.mail.ru is ready
При відправці пошти передаємо деякі потрібні дані (відправник, одержувач і сам лист):
C: MAIL FROM:<drozd> 'указываем отправителя
S: 250 OK
C: RCPT TO:<drol@mail.ru> 'указываем получателя
S: 250 OK
вказуємо серверу, що будемо передавати зміст листа (заголовок і тіло листа)
C: DATA
S: 354 Start mail input; end with <CRLF>.<CRLF>
передачу листа необхідно завершити символами CRLF.CRLF
S: 250 OK
C: From: Drozd <drozd@mail.ru>
C: To: Drol <drol@mail.ru>
C: Subject: Hello
між заголовком листа і його текстом не одна пара CRLF, а дві.
C: Hello Drol!
C: You will be die on next week!
закінчуємо передачу символами CRLF.CRLF
S: 250 OK
Тепер завершуємо роботу, відправляємо команду QUIT:
S: QUIT
C: 221 smtp.mail.ru is closing transmission channel
Додаткові команди
SEND - використовується замість команди MAIL і показують, що пошта повинна бути доставлена на термінал користувача.
SOML, SAML - комбінації команд SEND або MAIL, SEND і MAIL відповідно.
RSET - вказує серверу перервати виконання поточного процесу. Всі збережені дані (відправник, одержувач та ін) видаляються. Сервер повинен відправити позитивну відповідь.
VRFY - просить сервер перевірити, чи є переданий аргумент ім'ям користувача. У разі успіху сервер повертає повне ім'я користувача.
EXPN - просить сервер підтвердити, що переданий аргумент - це список поштового групи, і якщо так, то сервер виводить членів цієї групи.
HELP - запитує у сервера корисну допомогу про переданої в якості аргументу команді.
NOOP - на виклик цієї команди сервер повинен позитивно відповісти. NOOP нічого не робить і ніяк не впливає на зазначені до цього дані.
Якщо сервер вимагає авторизації, то необхідно перед введенням команди MAIL FROM замість команди HELLO, ввести наступну послідовність команд:
EHLO vasya
Якщо все ок, відповідь буде
250-mx30.mail.ru Hello mail.ru [80.64.80.192] 250-SIZE 10485760 250-8BITMIME 250-AUTH PLAIN LOGIN 250 PIPELINING
Після подібної відповіді можна вводити логін і пароль для авторизації. Для цього вводимо команду.
AUTH LOGIN
отримуємо відповідь
334 VXNlcm5hbWU6
І ось зараз треба вводити пароль і логін, але вони повинні бути закодовані кодуванням base64. Після введення логіна має з'явитися повідомлення з кодом 334. Після введення правильного пароля має з'явитися
235 Authentication succeeded
Авторизація пройдена. Зараз вказуємо від кого буде написано лист і розмір. Вказуєте свій ящик, від імені якого авторизувалися і обов'язково в такому форматі <email> Розмір листа вказується в байтах враховуючи всі заголовки, тіло листа і вкладені файли. 1 символ = 1 байт.
Формат поштового повідомлення
Формат поштового повідомлення Internet визначений в документі RFC-822 (Standard for ARPA Internet Text Message). Поштове повідомлення складається з трьох частин: конверта, заголовка і тіла повідомлення. Користувач бачить лише заголовок і тіло повідомлення. Конверт використовується лише програмами доставки. Заголовок завжди знаходиться перед тілом повідомлення і відокремлений від нього порожнім рядком. RFC-822 регламентує зміст заголовка повідомлення. Заголовок складається з полів. Поля складаються з імені поля і змісту поля. Ім'я поля відокремлено від змісту символом ":". Мінімально необхідними є поля Date, From, cc або То, наприклад:
Date: 26 Аug 76 1429 EDT From: Jones@Registry.org cc: Smith@aol.com
або
Date: 26 Aug 76 1429 EDT From: Jones@Registry.org To: Smith@Registry.org
Заголовок Date: визначає дату і час відправлення листа; вони записуються в стандартному форматі - тиждень, день, місяць, рік (2 цифри), час, часова зона. Заголовок From: визначає email адресу відправника, зазвичай в форматі RFC-822. Поштова адреса відправника в форматі RFC-822 має вигляд user@host.domain. Де user - це зареєстроване на поштовому сервері ім'я користувача поштової скриньки, а host.domain це повністю визначене доменне ім'я поштового сервера. Проте, можна використовувати і скорочену форму запису domain, де домен - це ім'я домену, в якому знаходиться поштовий сервер відправника. Заголовок To: містить email адресу адресу одержувача, який, як і адресу відправника, звичайно, відповідає стандарту RFC-822. Якщо надсилається текстове повідомлення, то інші заголовки є необов'язковими. В іншому випадку, потрібні додаткові заголовки тип і кодування переданого повідомлення.
