Indien je geen fan bent van e-mailclients met een mooie, grafische gebruikersinterface, of indien je wel eens wil experimenteren met andere mailclients alvorens je besluit welkeen het beste bij jou past, dan vind je hier de stappen die je uitleggen hoe je de krachtige commandline gebaseerde applicaties kan gebruiken:
fetchmail->procmail->mutt->smtp
Deze programma's zijn niet enkel zeer krachtig en enorm flexibel, maar tevens zeer klein en efficient. Eenmaal je met deze tools kan werken zal je verbaasd zijn over wat je ermee kan doen.
Aangezien dit een snelle introductiehandleiding is gaan we de Mail Transfer Agent (MTA) zoals sendmail, postfix of exim elimineren. Dat wil zeggen dat we geen complexe MTA-configuratie gaan uitvoeren. Dit elimineert tevens het gebruik van poort 25 voor de mailservice.
We kunnen dit doen omdat fetchmail ingesteld kan worden om zijn mails direct naar een Mail Delivery Agent (MDA) te sturen in plaats van naar poort 25. En we moeten geen complexe MTA configureren om gewoonweg mails te versturen.
Dit zijn de programma's die je zal nodig hebben om je e-mail-configuratie klaar en draaiende te krijgen:
Codevoorbeeld 1.1 |
# emerge fetchmail procmail mutt nbsmtp
|
Nu volgen er 4 snelle stappen waarin je bepaalde zaken configureert en daarna zal je een werkend e-mailsysteem hebben.
Belangrijk: Na elke stap kan je een test uitvoeren om te zien of de setup werkt. Dat wil zeggen dat je een volledig werkend e-mailsysteem zal hebben wanneer je gedaan hebt. |
Fetchmail haalt mails van een server en stuurt deze door naar je eigen pc haar e-mailsysteem. Om het te gebruiken moet je een .fetchmailrc bestand aanmaken in je homedirectorie zoals in het volgende voorbeeld:
Codevoorbeeld 2.1: Voorbeeld .fetchmailrc |
poll mail.myisp.net protocol pop3 user "myname" password "mypasswd"
|
Eenmaal je een .fetchmailrc bestand aangemaakt hebt moet je de toegangsrechten tot dat bestand aanpassen met het chmod commando. Het bestand mag enkel door de gebruiker leesbaar zijn. Stel de toegangsrechten als volgt in:
Codevoorbeeld 2.2 |
# chmod 710 .fetchmailrc
|
Om fetchmail in actie te zien kan je deze opstarten in verbose mode (-v). Om alle berichten binnen te halen gebruik je -a als optie. En vergeet -m niet zodat fetchmail de mails doorzendt naar procmail.
Waarschuwing: Terwijl je fetchmail test is het een goed idee om fetchmail te vragen alle mails op de server te behouden (-k) zodat, indien er iets fout gaat, je de mails nog steeds hebt en opnieuw kan proberen. |
Voer het nu uit om fetchmail in actie te zien!
Codevoorbeeld 2.3: Fetchmail test #1 |
# fetchmail -akv -m "/usr/bin/procmail -d %T"
|
Eenmaal je een werkende fetchmailinstallatie hebt kan je dit instellen als een cronjob of activeren via een monitorprogramma zoals gkrellm. Fetchmail kan je tevens in zogenaamde daemonmode draaien waarbij je dan een interval meegeeft.
Procmail is een programma dat de mails die hij via fetchmail krijgt filtert. Het werkt tevens als MDA om mails naar je mailboxen te zenden waar mutt (of een andere e-mailclient) ze kan lezen.
Om procmail te gebruiken moet je een .procmailrc bestand aanmaken in je homedirectorie. Omdat dit een snelle handleiding is gaan we een zeer simpele .procmailrc aanmaken die de mails van 3 gentoo mailinglists zal filteren in 3 mailboxen: gentoo-dev, gentoo-user en gentoo-announce.
Nota: De procmailfilter bestaat uit regels, recipes genaamd, waarvan je er hieronder enkele vindt. Er zijn tevens enkele recipes aanwezig om een beetje spam weg te filteren. |
Codevoorbeeld 3.1: Voorbeeld .procmailrc |
MAILDIR=$HOME/MuttMail ##Zorg ervoor dat deze bestaat LOGFILE=$HOME/.procmaillog LOGABSTRACT=no #VERBOSE=on...dit is enkel voor het debuggen interessant VERBOSE=off FORMAIL=/usr/bin/formail NL=" " ##recipe regels beginnen met een :0 ##plaats geen commentaar in recipes ##desactiveer recipes met de fout-conditie ! ##conditieregels beginnen met een * en gebruiken regexp's ##condities worden samengevoegd waarbij elke conditie moet voldaan zijn ##alles na een * wordt naar egrep gestuurd ##de laatste regel is de actieregel, in dit geval een mailbox naam #pak dubbele mails met formail :0 Whc: .msgid.lock | $FORMAIL -D 16384 .msgid.cache :0 a $MAILDIR/duplicates #mensen waarvan we altijd mails willen doorlaten :0 * ^From:.*(craig\@hotmail|renee\@local.com) $MAILDIR/friends #een beetje spam wegfilteren :0 * ^Subject:.*(credit|cash|money|debt|sex|sale|loan) $MAILDIR/spam #ik haat html-berichten :0 * ^Content-Type:.*html $MAILDIR/junk #alle mailinglists in mailboxen plaatsen :0 * ^List-Id:.*gentoo-user gentoo-user :0 * ^List-Id:.*gentoo-dev gentoo-dev :0 * ^List-Id:.*gentoo-announce gentoo-announce #alle andere gentoo-mail opvangen :0 * ^From:.*gentoo.org gentoo :0 * ^From:.*@freshmeat\.net freshmeat ############################################### # Laatste regel: mail die tot hier geraakt # # wordt naar de default mailbox gestuurd. # ############################################### :0 * .* default # Einde van bestand |
Nota: Enkel de maildir $HOME/MuttMail moet aangemaakt worden; procmail zal alle andere mailboxen aanmaken wanneer dat nodig is, en dit met als naam deze die we in de actieregels opgegeven hebben. Voor meer interessante links, bezoek http://www.procmail.org. |
Je kan nu .procmailrc testen door het fetchmailcommando van voordien opnieuw uit te voeren. Herinner de optie -k om alle mails op de server zelf te behouden zodat we die opnieuw kunnen gebruiken in latere stappen.
Codevoorbeeld 3.2: Procmail test #1 |
# fetchmail -akv -m "/usr/bin/procmail -d %T"
|
Nu dat fetchmail en procmail hun ding gedaan hebben ga je best naar $HOME/MuttMail om je mails met less of een bestandsbeheerprogramma te lezen.
Mutt wordt gebruikt om e-mails te lezen en op te stellen. Het is zeer krachtig en aanpasbaar maar tevens klein en efficient.
Mutt ondersteunt het lezen en schrijven van vier verschillende mailboxformaten: mbox, MMDF, MH en Maildir. Het soort mailbox wordt automatisch gedetecteerd. In ons geval gebruiken we het mbox formaat, waar alle berichten van de mailbox opgeslagen worden in 1 bestand.
Mutt heeft ook de mogelijkheid te werken met mappen gelocaliseerd op een IMAP server. Zie sectie 4.11 (IMAP Support) in de Mutt handleiding en op de Mutt website http://www.mutt.org.
Toen je mutt tijdens de eerste stap installeerde heeft het een default configuratiebestand geinstalleerd in /etc/mutt/Muttrc. Je moet tevens een .muttrc bestand aanmaken in je homedirectorie.
Codevoorbeeld 4.1: Voorbeeld .muttrc |
Lees zeker de Mutt handleiding in /usr/share/doc/mutt* De instellingen hier hebben voorrang op deze in /etc/mutt/Muttrc # cp /etc/mutt/Muttrc ~/.muttrc # nano -w .muttrc set pager_context=1 set pager_index_lines=6 #toont een mini-index set menu_scroll set pgp_verify_sig=no #geen pgp in pager set status_on_top #statusregel bovenaan set sort=threads #sorteren op threads 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 yourname@isp.net" #set from="default-mailaddress" #jouw e-mailadres !! #set realname="myname" set record="$HOME/MuttMail/sent" #verzonden e-mails set delete=yes #verwijderen zonder vragen set include=yes #bericht quoten set fast_reply=yes #antwoorden niet vragen set beep=no #geen lawaai set markers=no #geen + bij regelonderbreking set confirmappend=no #geen vraag bij =keep set to_chars=" +TCF" #geen L bij mailinglists set folder = $HOME/MuttMail mailboxes =gentoo-user mailboxes =gentoo-dev mailboxes =gentoo-announce mailboxes =gentoo mailboxes =freshmeat mailboxes =duplicates mailboxes =default mailboxes =sent mailboxes =friends mailboxes =junk mailboxes =spam mailboxes =keep save-hook .* =keep #default mbox mail te behouden is =keep subscribe gentoo-user gentoo-dev #ik zit op deze mailinglists bind pager h display-toggle-weed #headers tonen via "h" # oud url menu simuleren macro index \cb |urlview\n 'call urlview to extract URLs out of a message' macro pager \cb |urlview\n 'call urlview to extract URLs out of a message' #fetchmail uitvoeren bij het drukken van "G" macro index G "!fetchmail -a -m 'procmail -d %T'\r" macro pager G "!fetchmail -a -m 'procmail -d %T'\r" #editeer .muttrc en laadt ze zonder herop te starten macro generic ,sm ":source $HOME/.muttrc\r" macro generic \cj "!rxvt -bg wheat -e joe $HOME/.muttrc\r" #default lijst van headervelden om weg te filteren tijdens #het bekijken van e-mails. negeer ze allemaal en toon dan enkel deze #die je wil zien. ignore * unignore Date To From: Subject X-Mailer Organization User-Agent hdr_order Date From To Subject X-Mailer User-Agent Organization ##je Mutt moet kleurtjes hebben ##de volgende zijn er voor 4 niveau's van gequote tekst #color quoted green default color quoted1 magenta blue #color quoted2 yellow default #color quoted3 red default #color signature cyan cyan #deze kleureninstelling is gekopieerd van /etc/mutt/Muttrc.color #commentarieer indien je de default waarden wenst. 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 # Einde van bestand...maar het kan nog langer :) |
Dit is maar een voorbeeld .muttrc. Er zijn heel wat meer opties die je kan configureren, zoals gpg instellingen. Ga gerust eens een kijkje nemen op http://mutt.netliberte.org voor meer voorbeelden en help.
Je bent nu klaar om je .muttrc te testen.
Codevoorbeeld 4.2: Testen van .muttrc |
# mutt -y
|
Dit zal Mutt opstarten met een menu die de Mutt mailboxen toont die je in Test #2 aangemaakt hebt met het uitvoeren van het fetchmailcommando.
Type ? voor meer help in het navigeren tussen de Mutt mailboxen.
De laatste stap is het instellen van nbsmtp, de 'No-Brainer SMTP', die we gaan gebruiken voor het verzenden van mails naar je SMTP server. Deze configuratie is de eenvoudigste van allemaal, aangezien het slechts enkele regels vereist in je .muttrc bestand.
domain: Het domein waarvan je wil dat nbsmtp zegt dat het toe behoort. Dit zal hoogstwaarschijnlijk hetzelfde domein zijn als in je e-mailadres.
from@addr: Dit is het adres waarvan je wil dat nbsmtp zegt dat de mail vandaan komt. Dit is niet hetzelfde als de "From:" regel van je MUA.
host: Dit is de smtp server waarnaartoe je de mail zendt.
Codevoorbeeld 5.1: SMTP ondersteuning toevoegen |
# nano -w .muttrc
set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f urname@isp.net"
|
Je bent nu klaar om een e-mail te verzenden. Druk in de Mutt pager of in de index de m-toets om een testmail aan te maken die je naar je eigen verzendt. Mutt zal de EDITOR of VISUAL instelling gebruiken om te weten te komen welke editor je wenst voor je e-mails in te typen, tenzij je expliciet editor= definieert in je .muttrc. Wanneer je klaar bent met het aanmaken van de e-mail druk je op y om je e-mail te verzenden. Indien er geen foutmeldingen zijn zal je 'sending mail' zien gevolgd door 'New mail in =sent'.
Herinner je dat we in .muttrc ingesteld hebben waarnaartoe verzonden mails gekopieerd moeten worden, dit met set record="$HOME/MuttMail/sent".
Om de test te vervolledigen voeren we fetchmail opnieuw uit om al onze mails binnen te halen en te kijken of we inderdaad de testmail ontvangen hebben. Wanneer dit het geval is drukken we h om alle headers te bekijken alsook het volledige mail transfer pad.
Nota: Er is nog 1 programma dat je waarschijnlijk wil installeren, namelijk urlview. Dit zal de urls in de berichten extraheren en deze naar je browser zenden. |
Codevoorbeeld 5.2 |
# emerge urlview
|
Maak daarna ~/.urlview aan door het configuratiebestand van /usr/share/doc/urlview*/ over te kopieren, en stel daarna je browsercommando in.
Je hebt nu een zeer krachtig en zeer flexibel mailsysteem. Lees alle handleidingen en documentatie en zoek de verschillende configuratiebestanden die de gebruikers beschikbaar stellen op het internet (hint: google), vooral de muttrc en procmailrc bestanden.
The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.