Ghid de Învăţare Rapidă pentru Mutt
1.
Introducere în Poşta Elecronică
Dacă nu sunteţi un fan al clienţilor de poştă electronică având interfeţe
grafice fanteziste sau, pur şi simplu, doriţi să experimentaţi şi alţi clienţi
înainte de a decide care este cel mai potrivit pentru dvs., iată modul cel mai
uşor de a începe să utilizaţi aceste utilitare în linie de comandă:
fetchmail->procmail->mutt->smtp
Aceste programe nu sunt numai puternice şi foarte personalizabile, dar sunt şi
mici şi eficiente. Odată ce terminaţi punerea la punct şi rularea acestui
sistem de poştă electronică, veţi fi uimit de posibilităţile acestuia.
Deoarece acesta este un ghid de învăţare rapidă, vom elimina descrierea
aplicaţiilor Mail Transfer Agent (MTA sau Agent de Transfer a Poştei
Electronice), cum ar fi sendmail, postfix sau exim. Aceasta înseamnă eliminarea
informaţiilor despre configurarea aplicaţiilor MTA. De asemenea, elimină
utilizarea portului 25 pentru serviciul de poştă electronică.
Putem face aceste eliminări, deoarece fetchmail poate forţa mesajele descărcate
direct către o aplicaţie Mail Delivery Agent (MDA sau Agent de Distribuţie a
Poştei Electronice) în locul transmiterii acestora prin portul 25. Iar pentru
modalitatea clasică de distribuire a mesajelor nu este necesară o aplicaţie
MTA.
Acestea sunt aplicaţiile de care veţi avea nevoie pentru a rula sistemul dvs.
de poştă electronică.
Cod 1.1: Instalarea programelor necesare |
# emerge fetchmail procmail mutt nbsmtp
|
Apoi, este nevoie doar de patru paşi rapizi pentru a configura fişierele şi
veţi avea un sistem de poştă electronică perfect funcţional.
Important:
După fiecare pas expus, puteţi rula un test pentru a vă asigura că setările
sunt corecte. Aceasta înseamnă că veţi avea un sistem complet funcţional de
poştă electronică la finele acestui proces.
|
2.
Fetchmail
Fetchmail descarcă mesajele de pe sistemele server de la distanţă şi îl
transferă mai departe sistemului dvs. de distribuţie a mesajelor local. Pentru
a-l utiliza, trebuie să aveţi un fişier .fetchmailrc în directorul
dvs. personal, ca în următorul exemplu:
Cod 2.1: Exemplu de fişier .fetchmailrc |
poll mail.myisp.net protocol pop3 user "numele_meu" password "parola_mea"
|
Odată ce aţi creat un fişier .fetchmailrc, va trebui să-i
modificaţi permisiunile utilizând comanda chmod. Fişierul trebuie să aibă
permisiuni de citire doar pentru utilizatorul proprietar. Setaţi permisiunile
cu următoarea comandă:
Cod 2.2: Modificarea permisiunilor |
$ chmod 600 .fetchmailrc
|
Pentru a-l vedea în acţiune, utilizaţi modul informativ (-v). Pentru a descărca
toate mesajele, utilizaţi -a. De asemenea, trebuie să utilizaţi opţiunea -m
pentru a-i specifica aplicaţiei fetchmail pentru a trimite mesajul utilizând
procmail.
Atenţie:
În timpul testării, este o idee bună să specificaţi aplicaţiei fetchmail să
păstreze (-k) mesajele pe server-ul la distanţă, în cazul în care apar probleme
şi va trebui să descărcaţi mesajele din nou.
|
Rulaţi-l acum, pentru a-l vedea în acţiune!
Cod 2.3: Test fetchmail nr. 1 |
$ fetchmail -akv -m "/usr/bin/procmail -d %T"
|
Odată ce aveţi un sistem de poştă electronică functional, puteţi seta această
execuţie periodic prin cron sau într-o aplicaţie de monitorizare, cum este
gkrellm. Fetchmail poate, de asemenea, să ruleze în modul daemon, pentru care
dvs. trebuie să-i specificaţi un interval de timp la care să descarce mesajele
periodic.
3.
Procmail
Procmail este procesorul ce filtrează mesajele care îi sunt retransmise prin
fetchmail. De asemenea, acesta poate distribui mesajele în căsuţele dvs. de
mesaje, de unde mutt (clientul dvs. de poştă electronică) le poate citi.
Pentru a utiliza procmail, trebuie să creaţi un fişier .procmailrc
în directorul dvs. personal. Pentru a fi în concordanţă cu scopurile de
învăţare rapidă ale acestui ghid, vom utiliza un fişier
.procmailrc foarte simplu ce va ajuta la filtrarea mesajelor de pe
trei liste de distribuţie în următoarele căsuţe de mesaje: gentoo-dev,
gentoo-user şi gentoo-announce
Notă:
Regulile filtrului procmail sunt denumite destinaţii (recipies) şi am inclus,
de asemenea, câteva reguli de fitrare pentru spam.
|
Cod 3.1: Exemplu de fişier .procmailrc |
MAILDIR=$HOME/MuttMail ##asiguraţi-vă că există
LOGFILE=$HOME/.procmaillog
LOGABSTRACT=no
#VERBOSE=on...este utilizat doar pentru depanare
VERBOSE=off
FORMAIL=/usr/bin/formail
NL="
"
##liniile ce definesc regulile încep cu :0
##nu puteţi comentarii pe liniile ce definesc reguli
##dezactivaţi orice regulă cu o condiţie falsă !
##liniile condiţionale încep cu * având sintaxă cu expresii regulate
##condiţiile sunt comparate cu operatorul ŞI logic, iar orice după * este pasat direct aplicaţiei egrep
##o linie de acţiune urmează condiţiilor, caz în care aceasta reprezintă un nume de căsuţă de mesaje
#filtrează duplicatele utilizând formail
:0 Whc: .msgid.lock
| $FORMAIL -D 16384 .msgid.cache
:0 a
$MAILDIR/duplicates
#expeditorii de la care accept mesaje întotdeauna
:0
* ^From:.*(craig\@hotmail|renee\@local.com)
$MAILDIR/friends
#acum, filtrează unele mesaje spam
:0
* ^Subject:.*(credit|cash|money|debt|sex|sale|loan)
$MAILDIR/spam
#nu mai recepţiona mesaje în format html
:0
* ^Content-Type:.*html
$MAILDIR/junk
#acum, stochează mesajele de pe listele de distribuţie în căsuţele de mesaje
:0
* ^List-Id:.*gentoo-user
gentoo-user
:0
* ^List-Id:.*gentoo-dev
gentoo-dev
:0
* ^List-Id:.*gentoo-announce
gentoo-announce
#catch any other gentoo mail
:0
* ^From:.*gentoo.org
gentoo
:0
* ^From:.*@freshmeat\.net
freshmeat
################################################
# Ultima regulă: mesajele ce au ajuns aici #
# vor fi stocate în căsuţa de mesaje implicită #
################################################
:0
* .*
default
# Sfârşitul fişierului
|
Notă:
Este necesar doar să creaţi căsuţa MAILDIR $HOME/MuttMail,
deoarece Procmail va crea toate fişierele necesare în acest director utilizând
numele de pe liniile cu acţiuni. O adresă utilă este
http://www.procmail.org/
|
Puteţi testa fişierul .procmailrc prin rularea din nou a comenzii
fetchmail testată anterior, la primul pas. Reţineţi opţiunea -k pentru a păstra
toate mesajele pe server-ul la distanţă, pentru a putea rula comanda încă o
dată, în caz de nevoie.
Cod 3.2: Test procmail nr. 1 |
$ fetchmail -akv -m "/usr/bin/procmail -d %T"
|
Acum, că fetchmail şi procmail au fost rulate, navigaţi în
$HOME/MuttMail şi citiţi-vă mesajele cu aplicaţia less sau
cu aplicaţia file manager.
4.
Clientul de poştă electronică Mutt
Mutt este utilizat pentru a citi şi compune mesaje. Este foarte puternic şi
personalizabil, precum şi mic şi eficient.
Mutt suportă citirea şi scrierea a patru formate de căsuţe de mesaje: mbox,
MMDF, MH şi Maildir. Tipul căsuţei de mesaje este autodetectat. În cazul
nostru, utilizăm formatul mbox, unde toate mesajele dintr-o căsuţă sunt stocate
într-un singur fişier.
Mutt, de asemenea, suportă directoare stocate pe un server IMAP. Consultaţi
secţiunea 4.11 despre Suportul IMAP din manualul Mutt şi de pe site-ul oficial
Mutt http://www.mutt.org/
Dacă aţi instalat mutt la primul pas, acesta a instalat un fişier de
configurare în /etc/mutt/Muttrc. Va trebui să creaţi, de asemenea,
un fişier .muttrc în directorul dvs. personal.
Cod 4.1: Exemplu de fişier .muttrc |
# cp /etc/mutt/Muttrc ~/.muttrc
# nano -w .muttrc
set pager_context=1
set pager_index_lines=6 #afişează un paginator mini-index
set menu_scroll
set pgp_verify_sig=no #nu afişează informaţia pgp în paginator
set status_on_top #afişează linia de stare în partea superioară
set sort=threads #sortează după firul discuţiilor în index
set status_format=" %r %b %f %n Del %d Msgs %m %l %> (%P)"
set pager_format="%-10.10i %[!%a %b %d %R]"
set date_format="!%H:%M %a %d %b "
set index_format="%4C %Z %[%b%d] %-15.15F %s"
set folder_format="%2C %t %8s %d %N %f"
#set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f numeledvs@isp.net"
#set from="adresa-implcita" #setaţi adresa dvs. de expeditor
#set realname="Numele Dvs"
set record="$HOME/MuttMail/sent" #mesajele transmise sunt salvate aici
set delete=yes #ştergeţi fără confirmare
set include=yes #citează în mesajul de răspuns
set fast_reply=yes #fără confirmare la trasmiterea mesajului de răspuns
set beep=no #dezactivează sunetele
set markers=no #nu afişează + pe liniile formatate
set confirmappend=no #fără confirmare la salvare în =keep
set to_chars=" +TCF" #nu afişează L pentru listele de distribuţie
set folder = $HOME/MuttMail
mailboxes =gentoo-user
mailboxes =gentoo-dev
mailboxes =gentoo-announce
mailboxes =gentoo
mailboxes =freshmeat
mailboxes =duplicates
mailboxes =default
mailboxes =friends
mailboxes =junk
mailboxes =spam
mailboxes =keep
save-hook .* =keep #căsuţa de mesaje implicită pentru a (s)alva mesajele în =keep
subscribe gentoo-user gentoo-dev #subscris la aceste liste
bind pager h display-toggle-weed #(dez)activează antetul mesajelor cu tasta h
# simularea meniului clasic url
macro index \cb |urlview\n 'se invoca urlview pentru a extrage componentele URL din mesaj'
macro pager \cb |urlview\n 'se invoca urlview pentru a extrage componentele URL din mesaj'
#rulaţi fetchmail prin apăsarea tastei G
macro index G "!fetchmail -a -m 'procmail -d %T'\r"
macro pager G "!fetchmail -a -m 'procmail -d %T'\r"
#utilizaţi in cazul editării .muttrc şi apoi parcurgerii acestuia... nu este necesară repornirea
macro generic ,sm ":source $HOME/.muttrc\r"
macro generic \cj "!rxvt -bg wheat -e joe $HOME/.muttrc\r"
# lista implictă de linii de antet eliminate la afişarea mesajului
#ignoraţi-le pe toate şi apoi includeţi-le pe cele care le doriţi afişate
ignore *
unignore Date To From: Subject X-Mailer Organization User-Agent
hdr_order Date From To Subject X-Mailer User-Agent Organization
##Mutt trebuie să afişeze colorat
##acestea sunt pentru patru nivele de text citat
##acestea suprascriu setările sistem din /etc/mutt/Muttrc
#color quoted green default
color quoted1 magenta blue
#color quoted2 yellow default
#color quoted3 red default
#color signature cyan cyan
#această paletă de culori este copiată din /etc/mutt/Muttrc.color
#comentaţi-o dacă doriţi culorile implicite din /etc/mutt/Muttrc
# Eu văd viaţa în roz :-)
color hdrdefault brightcyan blue
color header brightwhite blue "^from:"
color header brightwhite blue "^subject:"
color quoted brightgreen blue
color signature brightwhite blue
color indicator blue green
color error red black
mono error bold
color status black cyan
mono status bold
color tree yellow blue
color tilde brightmagenta blue
color body brightwhite blue "[-a-z_0-9.]+@[-a-z_0-9.]+"
mono body bold "[-a-z_0-9.]+@[-a-z_0-9.]+"
color body brightyellow black "^Good signature"
mono body bold "^Good signature"
color body brightwhite red "^Bad signature from.*"
mono body bold "^Bad signature from.*"
color normal white blue
color message green black
color attachment brightgreen blue
# Sfârşitul fişierului.. dar puteţi să continuaţi la nesfârşit....:)
|
Ca informaţie, acesta este doar un exemplu de fişier .muttrc. Mai
există multe alte opţiuni pe care le puteţi configura, cum ar fi integrarea cu
GPG. Puteţi consulta http://www.dotfiles.com/index.php3?app_id=27
pentru mai multe exemple şi informaţii.
Sunteţi acum, gata, să testaţi fişierul dvs. .muttrc.
Cod 4.2: Testarea .muttrc |
$ mutt -y
|
Aceasta ar trebui să deschidă aplicaţia Mutt cu un meniu afişând căsuţele de
mesaje create la Testul 2, prin rularea comenzii fetchmail.
Tastaţi ? pentr informaţii despre modul de navigare prin căsuţele de mesaje din
Mutt.
5.
SMTP
Ultimul pas este setarea aplicaţiei nbsmtp ('No-Brainer SMTP') utilizată pentru
a trimite mesaje server-ului dvs. SMTP. Această configuraţie este cea mai
uşoară şi nu necesită decât adăugarea unei opţiuni în fişierul dvs.
.muttrc.
domain: Domeniul pe care doriţi ca aplicaţia nbsmtp să-l specifice ca
aparţinând de acesta. Acesta este, aproape invariabil domeniul adresei dvs. de
mesagerie electronică.
dela@adresa: Acesta este adresa pe care doriţi să o specifice nbsmtp ca
expeditor. Notaţi faptul că aceasta poate fi diferită de linia "From:" afişată
de clientul dvs. MUA.
gazda: Acesta este server-ul smtp spre care transmiteţi.
Cod 5.1: Adăugarea suportului pentru SMTP |
$ nano -w .muttrc
set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f numeledvs@isp.net"
|
Acum sunteţi gata să trasmiteţi un mesaj. Deci, în paginatorul Mutt sau in
index apăsaţi tasta m pentru a compune un mesaj pentru a-l trimite la
adresa dvs. de mesagerie electronică. Mutt va utiliza valoarea variabilei de
mediul EDITOR sau VISUAL pentru editorul de texte utilizat pentru compoziţie,
exceptând cazul în care aţi setat editor= în fişierul
.muttrc. La terminarea compoziţiei mesajului, apăsaţi y
pentru a transmite mesajul dvs. Dacă nu au fost raportate erori, veţi putea
observa mesajul 'sending mail' urmat de 'Mail sent.'
Amintiţi-vă că în .muttrc am setat locaţia unde trebuie salvate
mesajele, cu set record="$HOME/MuttMail/sent"
Acum, pentru a completa testul, rulaţi fetchmail din nou pentru a vă descărca
toate mesajele şi a verifica primirea mesajului trasmis de dvs. către adresa
dvs. de mail. Când vă găsiţi mesajul, apăsaţi tasta h pentru a activa
afişarea afişarea tuturor liniilor de antet şi a vizualiza calea completă de
trasmisie a mesajului.
Notă:
Mai există o aplicaţie pe care, probabil, veţi dori să o adăugaţi, numită
urlview. Aceasta extrage componentele url din textele mesajelor şi le trasmite
aplicaţiei dvs. navigare.
|
Cod 5.2: Instalarea urlview |
# emerge urlview
|
Apoi, puteţi crea ~/.urlview prin copierea fişierului de
configurare din /usr/share/doc/urlview*/ şi să setaţi comanda
pentru lansarea în execuţie a aplicaţiei de navigare.
Aveţi acum un sistem de poştă electronică foarte puternic şi personalizabil.
Pentru a putea face uz de flexibilitatea acestuia, consultaţi toate manualele
şi căutaţi multiplele configuraţii ale unor utilizatori, disponibile pe
internet: căutaţi după procmailrc şi muttrc.
6.
SMTP Autentificat
Utilizarea nbSMTP
Dacă aveţi nevoie de un nume de cont şi o parolă pentru server-ul dvs. de SMTP,
puteţi edita comanda set sendmail din fişierul .muttrc şi
să includeţi -U <numecont> -P <parola>, ca în următorul
exemplu:
Cod 6.1: Setarea contului de utilizar şi a parolei pentru SMTP |
set sendmail="/usr/bin/nbsmtp -U numecont -P parola -d isp.net -h smtp.isp.net -f numeledvs@isp.net"
|
Dacă nu doriţi ca această informaţie să fie prezentă în fişierul dvs.
.muttrc, puteţi, de asemenea, să creaţi un fişier
.nbsmtprc în care să includeţi toată informaţia:
Cod 6.2: exemplu ~/.nbsmtprc |
auth_user = numecont
auth_pass = parola
|
Alternativ: Utilizarea msmtp
msmtp este o alternativă simplă a aplicaţiei nbsmtp cu
posibilităţi similare.
Cod 6.3: Instalarea msmtp |
# emerge msmtp
|
Autentificaţi-vă ca utilizator de sistem şi configuraţi msmtp prin creare
unui fişier ~/.msmtprc, completând informaţiile despre
server-ul dvs. SMTP. Amintiţi-vă să setaţi permisiunile fişierului la
nişte valori sigure!
Cod 6.4: Configurarea msmtp |
$ nano -w .msmtprc
account default
host smtp.provider.net
from numecont@provider1.net
auth login
user numecont
password parola
|
Acum, setaţi permisiunile pentru fişier la o valoare sigură:
Cod 6.5: Setarea permisiunilor pentru fişierul de configurare |
$ chmod 600 .msmtprc
|
În final, modificaţi sau adăugaţi următoarea linie în .muttrc
Cod 6.6: Utilizarea msmtp cu Mutt |
$ nano -w .muttrc
set sendmail="/usr/bin/msmtp"
|
Rulaţi mutt şi transmiteţi-vă un mesaj de test pentru a vedea dacă
procesul funcţionează! Consultaţi pagina de manual a msmtp pentru mai multe
optiuni de configurare şi un alt exemplu.
Conţinutul acestui document este publicat sub licenţa Creative Commons -
Attribution / Share Alike.
|