Чтобы отослать электронное письмо из командной строки, можно воспользоваться утилитой mail. Также она может встречаться под названием mailx или Mail. Для отправки письма пишем следующую команду:
$ mail -s "Тема письма" pupkin@mail.ru
Привет!
Я пишу тебе из консоли!
Ctrl+D
Комбинация клавиш Ctrl+D (^D) с новой строки позволяет завершить ввод письма. После этого у меня появляется приглашение ввести получателя копии - просто жму "Enter", и письмо отправляется.
Если тело письма находится в файле, то можно просто воспользоваться перенаправлением входного потока:
$ mail -s "Письмо из файла" pupkin@mail.ru < mail_body.txt
Аналогично поступаем, если требуется отослать вывод какой-либо команды. Например, следующая команда отошлет мне на мыло содержание текущего каталога:
$ ls | mail -s "Вывод команды" pupkin@mail.ru
Кроме того, утилита позволяет не только читать письма, но и получать их, отвечать и делать прочие полезные манипуляции. Но вот чего она, похоже, не позволяет - так это добавить вложение к письму. Однако, это не беда. Есть немало способов отправить файл из консоли по электронной почте. Я рассмотрю три из них, которые не потребовали от меня разбираться в чем-то или что-то скачивать/устанавливать.
1. Если нужно отправить двоичный файл письмом, можно его просто закодировать с помощью uuencode. Команда будет выглядет следующим образом:
$ uuencode image.jpg image.jpg | mail -s "Метод 1" sombeody@somewhere.net
И хотя файл действительно закодируется и отправится, это не является вложением в полном смысле электронной почты. некоторые почтовые клиенты адэкватно отреагируют на файл в письме, другие же покажут его как простой текст, и раскодировать его придется вручную.
2. С помощью консольной утилиты mpack. Эта утилита пакует файл в сообщение и отсылает полученное сообщение туда, куда изволите.
$ mpack -s "Метод 2" image.jpg sombeody@somewhere.net
3. С помощью полноценного консольного почтового клиента mutt. Можно запустить его, сформировать письмо и отправить куда надо. А можно запустить mutt в режиме эмуляции диалога mailx (параметр -x), при этом передав через параметры все необходимое, чтобы не получать лишних вопросов от этой программы. Второй вариант выглядит так:
$ echo "Смотри вложение" | mutt -x -s "Метод 3" -a image.jpg sombeody@somewhere.net
Если какой-то из программ у вас не окажется (в чем я сильно сомневаюсь), ищите ее в репозиториях Debian.
Пишите - и да будете отвечены! :-)
пятница, 28 марта 2008 г.
Подписаться на:
Комментарии к сообщению (Atom)
А если вспомнить, что тысяча и одна программа умеют по какому-нить событию вызывать какую-нить программу, то кроме баловства можно и автоматизацией заниматься :)
ОтветитьУдалитьОт таких как ты происходят GUIвые юзеры.
УдалитьА от таких как Автор - грамотные Линуксоиды.
Вот поэтому и кажется мне эта возможность замечательной! И руки чешутся что-нибудь автоматизировать, но на практике кажется, что автоматизировать нечего :-) Поэтому и интересуюсь у народа, что именно он у себя автоматизирует :-)
ОтветитьУдалитьСовет интересный, я например не знал о таком. В задачах автоматизации может очень даже пригодиться.
ОтветитьУдалитьМеньше смайликов в тексте и больше примеров. В целом очень неплохо.
Этот комментарий был удален автором.
ОтветитьУдалитьа как там с attachment-ами?
ОтветитьУдалитьСпасибо за вопрос. Смотрите ответ в новой версии статьи. :-)
ОтветитьУдалитьКаким образом отправляется письмо? Мой компьютер становится почтовым сервером? Каков шанс попадания в спам на популярных почтовика?
ОтветитьУдалитьPS Отправил себе на gmail.com и ya.ru - ничего не пришло.
> Каким образом отправляется письмо?
ОтветитьУдалитьЭто зависит от установленного MTA. По умолчанию - через sendmail.
> Мой компьютер становится почтовым сервером?
В определенном смысле да.
> Каков шанс попадания в спам на популярных почтовика?
100% :) Обычно принимающие сервера относят к спаму всю почту, отправленную с localhost.
Каждые два дня нам нужно отправлять по электронной почте результаты медицинских анализов. Переодически делать это забывают :) Как раз стал думать над тем нельзя эту нехитрую операцию поручить скрипту. Спасибо за пост.
ОтветитьУдалить>> Каков шанс попадания в спам на популярных почтовика?
ОтветитьУдалить> 100% :) Обычно принимающие сервера относят к спаму всю почту, отправленную с localhost.
И что же делать в таком случае?
Этот комментарий был удален автором.
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалить>>> Каков шанс попадания в спам на популярных почтовика?
ОтветитьУдалить>> 100% :) Обычно принимающие сервера относят к спаму всю почту, отправленную с localhost.
> И что же делать в таком случае?
Например, настраивать MTA для работы через внешний SMTP. Как это сделать я описал здесь
> Например, настраивать MTA для работы
ОтветитьУдалить> через внешний SMTP. Как это сделать я
> описал здесь
Настроил как написали, через Postfix. Но когда запускаешь echo "Смотри вложение" | mutt -x -s "Метод 3" -a image.jpg sombeody@somewhere.net
Он все ровно приходит письмо от локолхоста. Система Убунту 9.04
а какую функцию выполняет ключик -s ?
ОтветитьУдалитьи значек | это он типа как горит выполнить 2 команды отновремено, типа типа результат 1 поместить во 2 и выполнить ? я правильно понимаю ?
правильнее будет так
ОтветитьУдалитьecho "Смотри вложение" | mutt -x -s "Метод 3" -a image.jpg image2.jpg ... -- somebody@somewhere.net
boris@boris-A24 ~ $ ls | mail -s "Вывод команды" user@mail.ru
ОтветитьУдалитьboris@boris-A24 ~ $ /usr/lib/sendmail: Отказано в доступе
"/home/boris/dead.letter" 60/1103
. . . message not sent.
В чём проблема? При попытке отправить из-под sudo или рута то же самое.
boris@boris-A24 ~ $ ls -l /usr/lib/sendmail
-rw-r--r-- 1 root root 0 2013-02-01 18:31 /usr/lib/sendmail