Электронная почта через командную строку
Иногда бывают такие ситуации, что получить или отправить электронную почту обычным путём нельзя (не работает/отсутствует почтовый клиент). В этом случае на помощь приходит командная строка.
Доступ к SMTP через telnet (отправка почты).
telnet mail.mydomain.ru 25
mail.mydomain.ru — адрес smtp сервера
25 — smtp-порт сервера с которым должен соедениться telnet
220 mail.mydomain.ru ESMTP Sendmail 8.13.1/8.13.1; Sat, 6 Oct 2007 09:50:16 +0400
ehlo lo
ehlo lo — поздоровались с удалённым smtp-сервером
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
mail from: test@mydomain.ru
тут мы говорим что адрес почтовый отправителя письма test@mydomain.ru
250 2.1.0 test@mydomain.ru... Sender ok
поверка отправителя прошла успешно
rcpt to: test@remote.ru
здесь мы ввели постовый адрес получателя нашего письма test@remote.ru
250 2.1.5 test@remote.ru... Recipient ok
проверка получателя прошла успешно
data
комманда data говорит о том, что дальше пойдёт тело письма
354 Enter mail, end with «.» on a line by itself
ответ сервера говорит нам о том что закончить письмо мы должны набрать точку «.» на новой строке после набранного нами сообщения (тела письма)
this test mail bla-bla-bla.
это наш текст
.
точка — даём понять серверу что письмо набрано и его пора отправлять адресату
250 2.0.0 l965oGGR025162 Message accepted for delivery
ответ сервера — письмо ушло на отправку
Доступ к POP3 через telnet (приём почты)
telnet pop3.myserver.ru 110
pop3.myserver.ru — наш pop3 сервер
110 — pop3-порт на который соедениться телнет
+OK
сервер сказал что соеденение прошло нормально
user test
ввели имя пользователя test.
pass parol
ввели пароль «parol»
теперь мы можем узнать колличество и размер почтовых сообщений:
stat
для вывода полного листинга почтовых сообщений надо использоваьт команду:
list
для того чтобы прочитать нужное сообщение вводим:
retr номер письма
просмотреть только заголовок сообщения:
top номер письма 0 (в конце строки поставить ноль)
удалить письмо из ящика:
dele номер сообщения
выход:
quit
Дополнение:
1) Если SMTP сервер требует SMTP-аутентификацию, то после того как мы с ним поздоровались (ehlo lo) вводим команду AUTH LOGIN и после неё поочереди:
USERNAME имя-пользователя
PASSWORD наш-пароль
2) На почтовых серверах где заведено несколько виртуальных почтовых доменах в POP3-сессии в поле user следует вводить полностью эл ящик: test@myserver.ru
Как отправить файл по электронной почте из командной строки Linux.
Для отправки файла из командной строки можно воспользоваться несколькими способами:
- Отправка текстового файла cat text.txt | mail -s TEST email@address
- Отправка бинарного файла cat text.exe | uuencode text.txt | mail -s TEST email@address
- Отправка файла с архивированием на лету: gzip -c text | uuencode text.gz | mail -s TEST email@address
- Отправка с помощью утилиты mpack: mpack -s “Attached file” file.jpg test@example.com
- Отправка с помощью утилиты nail:
mail -s «Let's send file» -a file_to_send.rar recepient@email.adr<Enter>
Look at this funny file<Enter>
.<Enter>
<Ctrl-D>
Во всех перечисленных примерах -s это subject (тема письма). команда mail входит в состав пакета mailutils, программа mpack входит в состав одноимённого пакета mpack.