Терзания
При влизане в Ubuntu Server чрез SSH след успешна авторизация ви посреща многоредово съобщение. То поднася всякаква допълнителна информация относно права, гаранции, версия ядро, дата и време на последен успешен вход, и т.н., но в края на предпоследния ред изписва You have new mail. Това винаги ме впечатляваше и веднага се надигаше усещане, че не влизам в персоналка с терминал, а в информационна система с команден център.- Създаване на празен файл .hushlogin в $HOME (~/.hushlogin)
- unset $MAILCHECK в файл .bashrc в $HOME (~/.bashrc)
- unset MAIL в файл /etc/profile
Повече за нея:
echo $SHELL
echo $MAILCHECK # 60s by default
man bash
и за да прочетете конкретно въведете /MAILCHECK.
Прочита на писмата в въпросната директория може да бъде по познат начин, чрез cat, more, tail, nano, но нещата ще станат по-интересни ако се постигат с команда за целта. Това предполага наличие на малък пощенски клиент с логична команда mail. По неясни причини подобна няма инсталирана в системата и ви посреща предложение от конзолата:
The program 'mail' can be found in the following packages:
* mailutils
* heirloom-mailx
* mutt
Try: sudo apt-get install
Работата с mail е изключително забавна и горещо препоръчана да се добави. Последните двa пакета предлагат прикрепяне на файл, но те не са обект на внимание, mailutils е главният герой.
Работата с mail от пакета mailutils се свежда до следния ред в терминала:
mail -s заглавие на писмото до1@адрес1 до2@адрес2 < съдържание на писмото
Флаг -s на команда mail указва изпращане на електронно писмо право от терминала, подобно на уеб-базирана поща или пък на пощенски клиент. Веднага след него напишете заглавие (ако е израз, го поставете в кавички), следва отстъп и въвеждане на електронен адрес. Веднага след него натиснете клавиш [Enter]. Ще се появи карбон полето (Cc:), въведете адрес или го пропуснете с клавиш [Enter]. I тук следва да напишете вашето писмо. Спокойно може да се пренасяте на нов ред с клавиш [Enter]. Изпращането става с ^D.
Малки пояснения
Пакет mailutils инсталира MUA (Mail user agent) и МТА (Mail Transfer agent). Първият се грижи за обработката на вашите писма и взаимодействието с вас, докато вторият поема от MUA писмото и го предава на пощенския сървър. МТА в mailutils се оказва postfix. В моя случай под Ubuntu 10.04.4 mail е версия GNU Mailutils 2.1, докато на другата ми машина под LinuxMint 14 се оказва версия 2.99.97. Различията доведоха писмата под Mint да се изпращат веднага, без всякакви допълнителни настройки, докато под Ubuntu удариха на камък.Отказах се да се занимавам с настройката на postfix, защото за скромните ми цели еднозначно считам за фаворит Exim4. Него вече разгледахме в тема Ubuntu localhost send mail. Exim4 ще предава писмата на безплатния smpt-сървър от Google. Ясно, че трябва да притежавате Google акаунт.
Команда mail предлага хитри начини за изпращане на писмо. Например, вие може да напишете обширно писмо в GUI редактор. Да го съхраните в вашата домашна директория под произволно име, да речем pismo.txt, а в последствие да го насочите в потока на mail чрез <.
(/bin/)mail -s "Заглавие" До@кого < pismo.txt
или пък да насочите изходния поток от една команда в входния на mail, чрез |.
ls -la | mail -s "Заглавие" До@кого
Инсталацията на mail ще даде още възможност, да четете вашите писма, попадащи в /var(/spool)/mail/$USER. Лаконична команда:
или по-конкретно
mail -u $USER
прочита става с въвеждане на r и съответно номера на писмото, а изтриването става с d.
d 1 - премахва първо писмо
d 1 2 3 - премахва първо второ и трето писмо
d 1-10 - задава диапазон за премахване
d * - трие всички
От думи на практика
На времето Ванката написа писмо с адрес "На село за дядо". Нещо такова да опитаме и ние, все пак наближава 14 февруари, моят трети рожден ден. Аз съм Водолей и съм се родил на 21.01. Задължително повтарям рождения си ден на 29.01 и го затвърдявам на 14.02. След тези дати за мен годината е изтекла ... та сантименталностите в ляво. Посветих се на команда Mail и написах bash-скрипт, който да направи деня ви по-пълен и изпълни с гордост, че сте убунтист. Скриптът нарекох email, съответно изпълним с права 0700. Разположих го до братята си в каталог Scripts на моята домашна директория.#!/bin/bash # Profruit script to send simple email # Форматиране на текст RED="\033[0;31m" ENDCOLOR="\033[0m" # mail команда MAIL=$(which mail) # Заглавие на писмото echo -e "${RED}\tЗаглавие на писмото${ENDCOLOR}" read SUBJECT # До кого? echo -e "${RED}\tАдрес на получателя${ENDCOLOR}" read ADDRESS # Валидация на ел.адрес EMAIL=`echo $ADDRESS | grep "^[a-zA-Z]\+\([._][a-zA-Z0-9._]\+\)*@\([a-z]\+\.\)\+[a-z]\{2,6\}$"` if [ ${#EMAIL} -gt 0 ]; then # Съдържание и изпращане # $MAIL -s $SUBJECT $EMAIL # "$MAIL" -s "$SUBJECT" "$EMAIL" ${MAIL} -s ${SUBJECT} ${EMAIL} # Служебни съобщения ANSWER=`echo $?` if [ $ANSWER -eq 0 ]; then echo -e "${RED}\tПисмото изпратено успешно${ENDCOLOR}" elif [ $ANSWER -ne 0 ]; then echo -e "${RED}\tПроблем с изпращане на писмото${ENDCOLOR}" fi else echo -e "${ADDRESS} не е валиден адрес.\nОпитай отново!" sleep 5 && exit fi
Каталог Scripts e добавен в променлива $PATH. По-интелигентен начин, отколкото да правя псевдоним (alias) на email. По този начин стартирам email само с лаконичен повик на името в терминала.
И така, пишем писмо На село за дядо.
Вижда се, че писмата пристигат успешно на двата адреса и кирилицата is not dead. И тук подводни камъни. Ако заглавието е израз на кирилица гърми. Не може да се парсне според "Format of RFC822 object is bad", иначе една дума на кирилица е ОК (за какъв чеп им е притрябвало на сиамските близнаци Кирилл и Мефодий да плагиатстват еврейските букви от понтите, га ако дращехме на шлоькавица нямаше да имаме такива дертове, ама нейсе, дядо знае езици).
Писмо може да пращате от името на вашия потребител или от суперпотребителя. Знайте, че в хедърите се чете вашето IP (не сте анонимен). За X-Mailer се подписва mail (GNU Mailutils 2.1), а изпращаш се явява вашия акаунт в Google.
до нови срещи ^.^
0 Response to "Команда MAIL"
Публикуване на коментар