Mutt

Z HelpDesk

Mutt je emailový konzolový klient. Jde o podobnou záležitost jako je Alpine (pine), ale s jinou filosofií ovládání a vysokou mírou možností konfigurace. Tento klient není přímo podporován CIVem, ale vzhledem ke znalostem zde uvádíme jeho základní konfiguraci. Jeho velkou výhodou je používání regulárních výrazů při vyhledávání a dalších hromadných operací s emaily. V současnosti nevyřešeným problémem je šifrování a podepisování emailů certifikátem uloženým na zaměstnaneckých JIS kartách, to je ale způsobeno chybou v cizí knihovně, která emaily nedokáže podepsat.

Toto nastavení předpokládá mutt verze 1.5.21 nebo vyšší, ideálně s rozšířeními. V Debianu je pod názvem mutt-patched, nutná je podpora SMTP a Trash.

Základní nastavení

Všechny konfigurační úpravy budou prováděny v domovském adresáři uživatele, na linuxu se předpokládá ~/.mutt/ Základní konfigurace se uvádějí do souboru muttrc, ostatní jako je obarvování, nastavení klávesových zkratek nebo dalších rozšíření se doporučuje nastavit do samostatných souborů a v muttrc je na konec připojit parametrem source.

Pošta pro odesílání

Vhodné uvést do souboru muttrc, zde je komentovaný konfigurační soubor, zvýrazněné hodnoty je třeba upravit dle vašeho nastavení:

#
# SMTP
#
set smtp_url="smtps://civenka@smtp.zcu.cz:465/" # pro odesilani pouzivam tento ucet
set from = "Civenka <civenka@civ.zcu.cz>" # vas email pro hodnotu 'From:' v emailech
set envelope_from = "yes" # nastaveni odesilatele na hodnotu z 'From:'

Při prvním odeslání emailu se vás Mutt zeptá na heslo k vašemu účtu, do doby než jej ukončíte si vaše heslo zapamatuje.

Příjem pošty

#
# folders
#
#set imap_authenticators="gssapi:login"
#set ssl_starttls=yes
set mbox_type=Maildir
set folder="imaps://civenka@imap.zcu.cz/" # vase schranka, na tuto polozku se odkazuje dale znakem '='
set spoolfile="=/INBOX"  # zde se nachazi nova posta
set mbox="="             # kde je mailbox 
set record="=/Sent"      # odchozi posta
set postponed="=/Drafts" # rozepsana posta
set trash="=/Trash"      # kde je zahozena posta, nutno povolit nize
set imap_list_subscribed=yes 

V této chvíli by se měl Mutt dokázat připojit k vaší emailové schránce a dokázat odeslat poštu. Pro lepší uživatelský komfort pokračujte v konfiguraci dále.

Další nastavení pro vhodnější chování

Tato nastavení zlepšují standardní nastavení Muttu, pro základní funkcionalitu nejsou nezbytná, ale doporučená:

#
# obecne
#
set maildir_trash = yes # ukladat smazane maily do kose, nutne rozsireni Trash
set mail_check = 30     # jak casto kontrolovat novou postu v sekundach
set mark_old = no       # oznacovat neprectenou postu jako starou pri ukonceni Muttu, priste bude zvyraznena
set pipe_decode = "yes" # umozni preprocessing zpravy jinymi programy
set signature = "~/.signature" # pripoji signaturu z urceneho souboru
set smart_wrap = "yes"  # zalamovani na mezerach, pokud se nevejde email do radku
#set wrap = "120" # po kolika znacich se ma lamat text v browseru, defaultne dle nastaveni terminalu
set date_format="%d. %b (%A) v %H:%M:%S %Z %Y" # cesky format datumu
set wait_key = "no" # pokud se vola ext. program, pri navratu nechtit 'Press any key to continue ...'

#
# Chovani pri Re: a Fwd:
#
set include                     # automaticke vkladani predchozi zpravy
set attribution="%D, %a wrote:" # nastaveni uvodniho textu zpravy
set forward_format="Fwd: %s"    # uprava Subject: pri preposilani zpravy
set forward_edit=yes            # chceme preposilanou zpravu upravovat, tj. automaticky otevrit editor
set forward_quote=yes           # preposlana zprava bude oznacena uvozenim

#
# jake casti zahlavi mailu chceme zobrazovat
#
ignore *                              # nic nezobrazovat
unignore From: To: Cc: Date: Subject: # z hlavicky mailu ukazat tyto polozky

Cache

Umožní rychleji prohledávat emaily, to co již stáhl ukládá do nastaveného adresáře:

#
# cache
#
set header_cache="~/.mutt/cache"
set message_cachedir="~/.mutt/cache"
set message_cache_clean=yes

Rozšířená konfigurace

Sidebar

Automatické vyhledávání kontaktů pro ZČU

Je založeno na balíku lbdb, který je nutné nastavit, pro Mutt stačí nastavit jeden řádek:

set query_command="lbdbq '%s'" # prohledavani adressbooku pres LDAP

Nastavení lbdb

Tento program se nastavuje v adresáři ~/.lbdb/, hlavní část se nachází v souboru rc, kde stačí nastavit 2 hodnoty:

METHODS="m_ldap m_inmail"
LDAP_NICKS="zcu.cz"

To znamená, že lbdb bude pro správu kontaktů používat dva moduly, jeden na LDAP (kontakty ZČU) a druhý vytvářet na základě příchozích emailů, oba moduly je třeba nastavit zvlášť.

modul m_ldap

Konfigurace je uložena v ~/.lbdb/ldap.rc a je třeba, aby vypadal takto:

%ldap_server_db = (
  'zcu.cz' => ['ldap.zcu.cz',
            'ou=rfc2307,o=zcu,c=cz',
            'givenname sn cn mail', 'givenname cn sn mail o',
            '${mail}', '${givenname} ${sn}', '${o}' ]
);

# hostname of your ldap server
$ldap_server = 'ldap.zcu.cz';
# ldap base search
$search_base = 'ou=rfc2307,o=zcu,c=cz';
# list of the fields that will be used for the query
$ldap_search_fields = 'uid cn sn ircnick';
# list of the fields that will be used for composing the answer
$ldap_expected_answers = 'uid cn sn ircnick';
# format of the email result based on the expected answers of the ldap query
$ldap_result_email = '${mail}';
# format of the realname result based on the expected answers of the ldap query
$ldap_result_realname = '${cn} ${sn}';
# format of the comment result based on the expected answers of the ldap query
$ldap_result_comment = '(${ircnick})';
# Don't use wildchars on searching
$ignorant = 1;
# Do an anonymous bind to the LDAP server:
$ldap_bind_dn = '';
$ldap_bind_password = '';
1;

modul m_inmail

Tento modul prohledá vaše emaily a vytvoří z ní databázi kontaktů v souboru ~/.lbdb/m_inmail.list, stačí do konfiguračního souboru Mutt (doporučuji do samostatného .mutt/bindings a přilinkovat jej příkazem source ~/.mutt/bindings v hlavním konfiguráku) tyto dva řádky:

# lbdb-fetchaddr
macro index ",a" "<enter-command>set pipe_split=yes<enter><tag-prefix><pipe-message>lbdb-fetchaddr<enter><enter-command>unset pipe_split<enter>" "Add email address into contacts"
macro pager ",a" "<enter-command>set pipe_split=yes<enter><tag-prefix><pipe-message>lbdb-fetchaddr<enter><enter-command>unset pipe_split<enter>" "Add email address into contacts"

Postupným stiskem kláves , (čárka) a a (malé písmeno 'a') se prohledá v daném emailu hlavička a vloží se emailové adresy do databáze. Pokud chcete více emailů současně, musíte je označit (tag) a pak přes ; (středník) vyvolat hromadnou operaci pro ,a

Problém je, že to uloží i kontakty pro ZČU, kde máme aktuálnější z LDAPu, proto je potřeba databázový soubor očistit o tyto kontakty. To nám nejlépe provede cron s tímto záznamem (pustí se denně v 19:17 a odebere všechny duplicity a adresy z domény zcu.cz):

17 19 * * * ( cd ~/.lbdb/ ; cp m_inmail.list m_inmail.list.tmp && cat m_inmail.list.tmp | sort -u -d -f -i -k 1,1 | egrep -v '[@\.]zcu.cz' > m_inmail.list && rm -f m_inmail.list.tmp )

Použití

Při dotazu na adresu příjemce stačí napsat část emailové adresy nebo jména a stisknout ctrl+t, pak si z nabídnutého seznamu stačí vybrat správnou volbu. Pokud je emailová adresa z modulu m_inmail, pak je u ní uvedeno datum poslední aktualizace. Více emailových adres se odděluje čárkou.

Formátování html emailu

#
# formatovani html emailu, nutno nastavit ~/.mailcap, viz
# http://www.debian-administration.org/articles/75
#
auto_view text/html

Automatická tvorba kontaktů z vlastních emailů

Bez konektivity - offline

Příchozí pošta

Odchozí pošta