Налаштування поштового сервера на базі Postfix, Dovecot та RoundCube. Зміст
Після того, як ми налаштували поштовий сервер, треба перевірити його працездатність. Звичайно це можна зробити за допомогою поштового клієнта, але іноді простіше і швидше зробити це за допомогою утиліти 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: user@test.com |
Вказуємо адресу відправника листа |
250 2.1.0 Ok |
Відповідь від сервера про те, що адреса прийнята |
rcpt to: yakim@study.local |
Вказуємо адресу отримувача листа |
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 "<20080712150752.42B10207527AB@web.test.org.ua>") 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. Зміст
Copyright © 2010-2017 IT Stream
Работает на «1С-Битрикс: Управление сайтом»