Частина 10. Робота з поштовим сервером за допомогою telnet.
- Деталі
- Категорія: Поштовий сервер
- Опубліковано: Четвер, 11 липня 2019, 11:54
- Автор: Super User
- Перегляди: 5122
Після того, як ми налаштували поштовий сервер, треба перевірити його працездатність. Звичайно це можна зробити за допомогою поштового клієнта, але іноді простіше і швидше зробити це за допомогою утиліти telnet.
Поштовий сервер для відправлення листа використовує протокол SMTP, який за замовчуванням працює на tcp-порту 25. Цілком можливий¸ доречі, варіант його знаходження і на порту 587. Порт 587 використовує служба submission-SMTP з перевіркою достовірності, але це зовсім не означає що не буде проходити авторизація клієнтів поштового сервера на порті 25.
Якщо ми налаштували автентифікацію, то логін та пароль мають передаватися в кодованому вигляді, тому спочатку треба створити ці кодовані рядки.
$ perl -MMIME::Base64 -e 'print encode_base64("user\@study.local");'
bXlfbG9naW4K
$ perl -MMIME::Base64 -e 'print encode_base64("PASSWORD");'
bXlfcGFzc3dvcmQK
Саме ці значення ми будемо вводити замість логіна та пароля в нашій SMTP-сесії
В командному рядку відкриваємо нашу сесію:
$ telnet mail-server 25
або, у випадку STARTTLS-сесії та порта 587:
$ openssl s_client -starttls smtp -crlf -connect mail-server:587
Далі йде послідовність команд для відправлення листа з коментарями до них.
Trying 192.168.0.114... Connected to mail-srv. Escape character is '^]'. |
На консолі відображується спроба з'єднання з сервером |
220 mail.study.local ESMTP (ubuntu) |
При вдалому з'єднанні сервер показує рядок вітання |
ehlo test.com |
Вводимо рядок вітання |
250- mail-srv 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN |
Та отримуємо відповідь від сервера |
auth login |
Якщо потрібна авторизація на сервері - вводимо цей рядок. Якщо авторизація не потрібна, пропускаємо цю команду і продовжуємо введення з команди "mail from:" |
334 VXNlcm5hbWU6 |
Отримуємо відповідь від сервера |
bXlfbG9naW4K |
Вводимо наш логін в форматі base64, який ми отримали на початку |
334 UGFzc3dvcmQ6 |
Отримуємо відповідь від сервера |
bXlfcGFzc3dvcmQK |
Вводимо наш пароль в форматі base64, який ми отримали на початку |
235 2.7.0 Authentication successful |
Сервер повідомляє про успішну автентифікацію |
mail from: Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. |
Вказуємо адресу відправника листа |
250 2.1.0 Ok |
Відповідь від сервера про те, що адреса прийнята |
rcpt to: Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. |
Вказуємо адресу отримувача листа |
250 2.1.5 Ok |
Відповідь від сервера про те, що адреса прийнята |
data |
Після введення цієї команди починається сам лист |
354 End data with <CR><LF>.<CR><LF> |
Отримуємо відповідь від сервера |
subject: test telnet auth |
Якщо потрібна тема листа - ввести цю команду |
test .
|
Тут пишемо сам лист. Він ОБОВ'ЯЗКОВО повинен закінчуватися послідовністю ENTER |
250 2.0.0 Ok: queued as 415211810C6 |
Відповідь від сервера про те, що лист прийнято та поставлено до черги |
quit |
Вводимо команду закінчення роботи |
221 2.0.0 Bye Connection closed by foreign host. |
Сервер сповіщає про закінчення сесії |
Після цих дій, лист буде прийнято сервером і відправлено на адресу отримувача.
Тепер перевіримо роботу IMAP-сервера.
Скористаємося для цього тією ж утилітою telnet.
З'єднаємося з сервером
$ telnet mail-server 143
Якщо у нас з'єднання з сервером IMAP зашифроване (по SSL), то команда з'єднання буде наступною:
$ openssl s_client -crlf -ign_eof -connect mail-server:993
Далі йде послідовність команд для роботи з сервером з коментарями до них.
Trying 192.168.0.114... Connected to mail-srv. Escape character is '^]'. |
На консолі відображується спроба з'єднання з сервером |
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready |
При вдалому з'єднанні сервер показує рядок вітання |
. login our-login our-password |
Після команди . login вводимо в тому ж рядку логін і пароль у відкритому вигляді |
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in |
Сервер повідомляє про успішний логін |
. list "" "*" |
Вводимо команду перегляду списку поштових тек |
* LIST (\HasNoChildren) "." "Drafts" * LIST (\HasNoChildren) "." "Spam" * LIST (\HasNoChildren) "." "Trash" * LIST (\HasNoChildren) "." "Sent" * LIST (\HasNoChildren) "." "INBOX" . OK List completed. |
Сервер виводить список тек |
. status INBOX (messages) |
Запитуємо у сервера статус теки Inbox |
* STATUS "INBOX" (MESSAGES 1086) . OK Status completed. |
Сервер виводить статус теки |
. select inbox |
Обираємо для подальшої роботи теку inbox |
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent Junk NonJunk $Forwarded KMAILFORWARDED KMAILTODO KMAILWATCHED KMAILIGNORED $TODO $WATCHED $IGNORED receipt-handled $label2 $has_cal) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent Junk NonJunk $Forwarded KMAILFORWARDED KMAILTODO KMAILWATCHED KMAILIGNORED $TODO $WATCHED $IGNORED receipt-handled $label2 $has_cal \*)] Flags permitted. * 1086 EXISTS * 0 RECENT * OK [UNSEEN 1085] First unseen. * OK [UIDVALIDITY 1242120321] UIDs valid * OK [UIDNEXT 138212] Predicted next UID * OK [HIGHESTMODSEQ 187388] Highest . OK [READ-WRITE] Select completed. |
Відповідь сервера |
. fetch 7 full |
Даємо команду серверу показати лист № 7 |
* 7 FETCH (FLAGS (\Seen) INTERNALDATE "12-Jul-2008 18:24:12 +0300" RFC822.SIZE 1935 ENVELOPE ("Sat, 12 Jul 2008 18:07:52 +0300 (EEST)" "test mail" (("test.com" NIL "isbear" "ukrpost.net")) (("test.com" NIL "isbear" "ukrpost.net")) (("test.com" NIL "isbear" "ukrpost.net")) ((NIL NIL "yakim" "test.com.net")) NIL NIL NIL "< Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.>") BODY ("text" "plain" ("charset" "KOI8-U") NIL NIL "7bit" 279 8)) . OK Fetch completed. |
Сервер показує заголовки листа |
. fetch 7 rfc822.text |
Даємо команду серверу показати тіло листа № 7 |
Re: test mail this is test mail |
Сервер показує тіло листа |
. logout |
Вводимо команду закінчення роботи |
* BYE Logging out . OK Logout completed. Connection closed by foreign host |
Сервер сповіщає про закінчення сесії |
Підтримайте, будь ласка автора
та придбайте книгу
"Налаштування поштового
сервера на базі Postfix, Dovecot
та RoundCube"
В електронному вигляді