Autokonfigurace e-mailových klientů

Dan Ohnesorg 23. 9. 2013

Konfigurace e-mailového klienta není pro běžného uživatele nic triviálního. Vyžaduje od něj vyplnění mnoha položek, jejichž významu nerozumí. Pokud pak něco nefunguje, obvykle si uživatel neví rady a volá někoho zdatnějšího. Existuje ale možnost autokonfigurace, kdy uživateli stačí zadat jen mailovou adresu.

Konfigurace elektronické pošty je pro mnoho uživatelů obtížná a potřebují s ní pomoci. To můžete zajistit buď tak, že uživatele navštívíte a nebo tak, že pro klienta připravíte návod, jak se nastavit automaticky na optimální variantu. Uživatel potom zadá pouze svoji emailovou adresu a zbytek konfigurace je proveden automaticky.

Thunderbird

Nejjednodušší to mají u Thunderbirdu velcí poskytovatelé, mající více než 100 000 schránek. Ti mohou požádat vývojáře, aby jejich vzorovou konfiguraci zahrnuli databáze konfigurací. Uživatel potom vyplní email a zbytek údajů je doplněn z komponenty ISPDB. Ale i když nesplňujete tuto podmínku, nic není ztraceno. Stačí nastavit do DNS pro každou doménu, ve které si uživatelé zřizují emaily, speciální záznam a nasměrovat jej na www server, který pošle autokonfigurační soubor.

Thunderbird po vyplnění emailové adresy uživatele položí do DNS dotaz na existenci záznamu autoconfig + doména uživatele. Např. pokud máte email test@root.cz, je položen dotaz na autoconfig.root.cz. Pokud tento záznam existuje, je pomocí http protokolu stažena konfigurační šablona z pevně daného URL, konkrétně

http://autoconfig.root.cz/mail/config-v1.1.xml?emailaddress=test@root.cz

Dokumentace uvádí, že pokud zde není konfigurace nalezena, tak je hledána i na URL http://root.cz/.well-known/autoconfig/mail/config-v1.1.xml, ale mnou zkoušené verze Thunderbirdu druhé URL nevolají.

Konfigurační soubor vypadá např. takto:

<?xml version="1.0" encoding="UTF-8"?>

<clientConfig version="1.1">
  <emailProvider id="example.com">
    <domain>example.com</domain>
    <displayName>Example Mail</displayName>
    <displayShortName>Email</displayShortName>
    <incomingServer type="imap">
      <hostname>imap.example.com</hostname>
      <port>993</port>
      <socketType>SSL</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>
    <outgoingServer type="smtp">
      <hostname>smtp.example.com</hostname>
      <port>587</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </outgoingServer>
  </emailProvider>
</clientConfig>

Jeho struktura je celkem jasná. Detailní popis je k dispozici na wiki.mozilla.org. V konfiguraci může být více variant příchozích a odchozích serverů, uživatel dostane na výběr. Smysl to dává asi jen pro současné uvedení IMAP a POP3, protože více odchozích SMTP serverů by uživatele jen zmátlo.

Parametr hostname je dle očekávání jméno serveru, které musí souhlasit s CNAME SSL certifikátu, aby Thunderbird neobtěžoval uživatele hlášením o nedůvěryhodném certifikátu.

Username může být buď přímo jméno, které uživatel používá, a nebo zástupný vzor. Ty jsou definovány dva a jsou interpretovány na straně klienta (Thunderbirdu). První je %EMAILADDRESS%, klient jej nahradí za emailovou adresu tak, jak byla uživatelem zadána a druhý %EMAILLOCALPART%, je nahrazena za jméno bez @ a domény.

Pokud potřebujete složitější úpravy, je potřeba je vyřešit na straně serveru a do konfigurace doplnit očekávané přihlašovací jméno. Dokumentace zmiňuje např. variantu, kdy uživatel zadá adresu info@, ale server ví, že se jedná o alias a pošta je doručována do schránky fred@. Pošle proto uživateli <username>fred@example.com</username>. (Pro přesnost: Existují i další zástupné vzory, ale podle mne neexistuje případ, kdy by je bylo možné použít.)

SocketType povoluje nebo zakazuje šifrování, případně dává na výběr mezi SSL a STARTTLS. Pro ochranu vašich uživatelů byste rozhodně měli SSL podporovat a doporučovat.

Authentication může nabývat hodnot password-cleartext, password-encrypted, případně NTLM. Vetšinou jiná volba než password-cleartext není reálně nasaditelná. Pokud definujete odchozí (SMTP) server, můžete použít i smtp-after-pop, tedy variantu, kdy server povoluje odesílání emailu nějakou dobu po stažení pošty přes POP3/IMAP. Serverů, které to podporují, ale rychle ubývá.

Port je číslo portu, těžko o tom více napsat. Snad jen doporučení: pokud chcete uživateli zjednodušit život, používejte pro odesílání pošty port 587, který nebývá na rozdíl od portu 25 blokován.

Thunderbird je citlivý na korektní syntaxi konfiguračního souboru a pokud nalezne problém, soubor kompletně ignoruje. Bohužel o tom negeneruje nikde žádné hlášení, proto se chyba velmi špatně hledá.

Microsoft Outlook

U Microsoft Outlooku je situace složitější. Používá totiž SSL spojení, takže cílový server musí být vybaven certifikátem, kterému Outlook důvěřuje, ale navíc žádost o konfiguraci posílá jako POST požadavek, který v těle obsahuje emailovou adresu uživatele. Odpověď je potřeba vytvořit pro každého uživatele zvlášť, Outlook nemůže dostat vzor, který by si klient dynamicky pozměnil.

Navíc varuje uživatele, že probíhá autokonfigurace, uživatele je potřeba na varování předem připravit. Případně pokud distribuujete autokonfiguraci ze stejné domény, ve které má uživatel email, hlášení se nemusí zobrazit.

Dalším specifikem Outlooku je, že se na konfiguraci ptá nejen při zakládání účtu, ale i později. Takže pokud nastavíte platnost konfigurace, máte později možnost uživatele automaticky přestěhovat na jiný server.

V DNS musíte založit SRV záznam, pro Bind bude mít tuto syntaxi:

_autodiscover._tcp IN SRV 0 0 443 muj.konfiguracni.server.

To znamená, že pokud se někdo optá na SRV jméno _autodiscover._tcp.root.cz, dostane odpověď, že se musí spojit na port 443 serveru  muj.konfiguracni.server.

Poté co se spojí, provede Outlook POST a v jeho rámci odešle na URL /autodiscover/autodiscover.xml soubor s následujícím obsahem:

<?xml version="1.0" encoding="utf-8"?>
  <Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006">
    <Request>
      <EMailAddress>test@root.cz</EMailAddress>
      <AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema>
    </Request>
  </Autodiscover>

Konfigurační soubor pro Outlook, který očekává jako odpověď, vypadá takto:

<?xml version="1.0"?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
  <Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
    <User>
      <DisplayName>Email Provider</DisplayName>
    </User>
    <Account>
      <AccountType>email</AccountType>
      <Action>settings</Action>
      <Protocol>
        <Type>IMAP</Type>
        <Server>mail.example.com</Server>
        <Port>993</Port>
        <DomainRequired>off</DomainRequired>
        <SPA>off</SPA>
        <SSL>on</SSL>
        <LoginName>test@example.com</LoginName>
      </Protocol>
      <Protocol>
        <Type>SMTP</Type>
        <Server>smtp.example.com</Server>
        <Port>587</Port>
        <DomainRequired>off</DomainRequired>
        <SPA>off</SPA>
        <SSL>on</SSL>
        <LoginName>test@example.com</LoginName>
        <ExpirationDate>YYYYMMDD</ExpirationDate>
        <TTL>0</TTL>
        <SMTPLast>off</SMTPLast>
      </Protocol>
    </Account>
  </Response>
</Autodiscover>

Obsah je zase zřejmý, definice se nalézá v Technetu. Zatímco Thunderbird může dostat současně více konfigurací a uživatel si vybere požadovanou, Outlook akceptuje jen první, kterou v souboru nalezne.

Za zmínku stojí parametry TTL a ExpirationDate. Oba stanovují, jak dlouho platí konfigurace a to buď relativně, a nebo absolutně. Pokud není TTL uvedeno, tak platí 60 minut a v podstatě je konfigurace ověřována při každém startu Outlooku (běžel-li déle než 60 minut). Pokud je TTL uvedeno jako nulové, je konfigurace platná navždy nebo do data ExpirationDate. Tyto parametry nejsou povinné.

Pokud potřebujete provozovat POP-Before-SMTP, musíte uvést parametr <SMTPLast>on</SMTPLast>, který zajistí, že Outlook ponechá odesílaní emailů až na konec. Jinak implicitně nejdříve odesílá emaily ve frontě.

Jak je vidět, Outlooku nelze předepsat, zda použít SSL nebo STARTTLS. Obvykle se chová tak, že pokud je uveden port 465, použije SSL, pokud port 587, použije STARTTLS. V obou případech se ale pokouší o nějakou autodetekci, který typ šifrování zvolit.

S Outlookem se „veze“ i Apple Mail, který používá stejný konfigurační protokol, ale ignoruje parametr TTL a konfiguraci zjišťuje jen jednou, při prvním nastavení účtu daného uživatele.

Autoconfig.cz

Pokud se nechcete trápit s tvorbou konfiguračního souboru, můžete použít naši novou službu Autoconfig.cz. Pokud si v ní zaregistrujete doménu a nastavíte DNS tak, aby odkazovalo na danou službu, máte k dispozici vygenerované konfigurace pro své klienty. Automaticky jsou vytvářeny konfigurace pro Thunderbird i Microsoft Outlook.

Lupa.cz: Seznam "hackl" DVB-T a jde se Streamem do éteru

Seznam "hackl" DVB-T a jde se Streamem do éteru

Podnikatel.cz: Šizený guláš na pultě. Jako Lidl to nedělejte

Šizený guláš na pultě. Jako Lidl to nedělejte

120na80.cz: Vyzrajte na návaly a pocení v přechodu

Vyzrajte na návaly a pocení v přechodu

Vitalia.cz: Syndrom PC vidění: stačí dvě hodiny denně

Syndrom PC vidění: stačí dvě hodiny denně

Podnikatel.cz: Proměny stavebnice Seva. Znáte ji?

Proměny stavebnice Seva. Znáte ji?

120na80.cz: 10 nej přípravků na holení

10 nej přípravků na holení

DigiZone.cz: UPC umí televizi sedm dní nazpět

UPC umí televizi sedm dní nazpět

Vitalia.cz: 7 nemocí očí, které musíte léčit včas

7 nemocí očí, které musíte léčit včas

Root.cz: Zákon o hazardu je v rozporu s ústavou

Zákon o hazardu je v rozporu s ústavou

Podnikatel.cz: Rošáda v živnostech. Týká se vás?

Rošáda v živnostech. Týká se vás?

DigiZone.cz: Konec geoblokace online médií?

Konec geoblokace online médií?

Lupa.cz: Kam si doma dáte internet věcí? Na polici?

Kam si doma dáte internet věcí? Na polici?

Vitalia.cz: Proč v Penamu nesypou koblihu moučkovým cukrem

Proč v Penamu nesypou koblihu moučkovým cukrem

Vitalia.cz: Sója a rakovina

Sója a rakovina

Podnikatel.cz: Když už je sexy, tak ať taky funguje

Když už je sexy, tak ať taky funguje

Vitalia.cz: Muži kouří 24 cigaret denně, ženy o dost míň

Muži kouří 24 cigaret denně, ženy o dost míň

Root.cz: Cenzura internetu prošla, i přes pochyby senátorů

Cenzura internetu prošla, i přes pochyby senátorů

DigiZone.cz: DAB+ versus FM, ČRo a ČRa proti APSV

DAB+ versus FM, ČRo a ČRa proti APSV

Lupa.cz: Zaplatíme ti, když ti seženeme práci

Zaplatíme ti, když ti seženeme práci

Vitalia.cz: SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí

SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí