*** MailForw (dříve SMSforwarder) v.2.30 ***

*** (c) Lukáš Horálek, 20.06.2000 ***

July 21, 2000

1   Úvodem

MailForw je Unixový skript, sloužící k transportu části e-mailových zpráv, případně předem zadaných dat, na mobilní telefon. Posílat začátek e-mailové zprávy na mobilní telefon lze sice v Unixovém světě pomocí jednoho řádku v souboru .forward, výsledek je však dosti neefektivní, těžkopádný a nekonfigurovatelný. MailForw oproti tomu umožňuje zefektivnění přeposlání mailu na kratké 160-ti znakové SMS zprávy (např. pomocí odstranění redundatních mezer) a širokou konfigurovatelnost dle požadavků uživatele.

2   Možnosti programu

MailForw v. 2.30 umožňuje: Co naopak MailForw v. 2.30 neumožňuje (řešení některých dále naznačených bodů lze očekávat v následujících verzích):

3   Instalace programu

Po stáhnutí programu MailForw v. 2.30 získáte balík MaFo_230.tar.gz. K rozbalení je třeba použít příkazy gzip a tar s příslušnými parametry, např.:
     gunzip MaFo_230.tar.gz ; tar xvf MaFo_217.tar

Program, včetně veškerých komponent, se skrývá v adresáři MailForw/ (a dalších podadresářích). Od v. 2.30 již neplatí nutnost umisťování tohoto adresáře do adresáře domovského, dokonce se tento adresář ani nemusí jmenovat MailForw. Stejně tak vlastní programy, tzn. MailForw a MailForwR mohou být tzv. ``server-installed'', což značí, že mohou být na serveru pouze na jediném místě, a může je využívat libovolný počet uživatelů (nevzniká tak tedy zbytečná duplicita a šetří se místo na disku). V dalším textu bude nicméně v příkladech nadále předpokládáno, že většina uživatelů má program MailForw rozbalen ve stejnojmenném adresáři ve svém adresáři domovském, značeném vlnovkou.

Dále je pak potřeba vytvořit (pokud již neexistuje) v domovském adresáři soubor .forward. Jeho obsah by měl být přibližně následující:
     uzivatel@adresa.cz \
     | /home/uzivatel/MailForw/MailForw /home/uzivatel/MailForw

Pokud ovšem správce serveru bude program MailForw instalovat ``serverovým'' způsobem, soubor .forward může vypadat např. takto:
     uzivatel@adresa.cz \
     | /usr/local/bin/MailForw /home/uzivatel/MailForw

Nu, a pokud chce mít uživatel adresáře programu MailForw někde jinde a navíc jinak pojmenovány, může soubor .forward vyhlížet třeba následovně:
     uzivatel@adresa.cz \
     | /usr/local/bin/MailForw /var/tmp/franta/mailforwardicek

Pokud není uveden řádek uzivatel@adresa.cz, dojde patrně k tomu (záleží na konfiguraci MTA sendmailu), že došlý e-mail bude odtransportován přes MailForw na mobilní telefon, a poté bude zahozen (nedojde k jeho uložení do INBOXu). Tuto vlastnost lze využít ve chvíli, kdy uživatel obhospodařuje svůj e-mailový účet na jiném stroji/platformě a Unixový účet potřebuje pouze stran použití programuMailForw.
Pozn.: Ať už se adresář programu MailForw jmenuje jakkoliv a je umístěn kdekoliv, je třeba nezapomenout v něm mít všechny nezbytné soubory a podadresáře!

4   Konfigurace a nastavení

4.1   Konfigurace souboru global

Nejprve je třeba nakonfigurovat globální parametry v souboru ${HOME}/MailForw/conf/global. Soubor vypadá následovně:
     jmeno_polozky1    hodnota1
     jmeno_polozky2    hodnota2
        :

Každá položka musí začínat na novém řádku. Oddělovačem mezi názvem položky a její hodnotou je libovolný (rozumný) počet mezer či tabulátorů.

Popis jednotlivých položek:
  1. email_address
    Uživatelé předchozích verzí si jistě vzpomenou, že na prvním místě byla kdysi položka my_number. Jelikož se však formáty mobilních operátorů relativně často mění, a také proto, že program MailForw lze nyní vlastně použít jako ``universální rozřezávač došlých zpráv'', zadává se zde nyní adresa celá. Tato adresa může být skutečně libovolná, byť drtivá většina uživatelů zde uvede svoji adresu mobilní. Správný tvar e-mailové adresy je třeba vyzjistit od svého aktuálního operátora, nicméně pro většinu (GSM) operátorů bývá tato adresa tvaru: +42abbbXXXYYY@sms.jmeno_site.cz.
  2. chars_per_SMS
    A přichází další změna. Na tomto místě dříve bývala položka net_provider. Nyní však, když je provider vlastně jednoznačně určen z předcházející položky email_address, je explicitní určení zbytečné. Co ovšem zbytečné rozhodně není, je určení počtu využitelných znaků pro jednu SMS zprávu. Fyzická velikost SMS zprávy je sice 160 znaků, ale většinou jde její určitá část na režii, což je např. povinná položka From:, u některých operátorů doplňující text (doplňován až při cestě GSM branou, tedy programem MailForw neovlivnitelný). Navíc je i tato položka v duchu onoho ``univerzálního rozřezávacího'' použití. Hodnoty pro toho, či kterého operátora se v průběhu času mění, aktuální (20.06.2000) hodnoty jsou:
    Paegas 149 zn.
    Eurotel 138 zn. (pravděpodobně)
    Operator 200 182 zn.
    Operator 400 382 zn.
    Operator 1000 982 zn.
    Pro údaje k ostatním operátorům je třeba kontaktovat svého operátora a dotázat se na přesný tvar e-mailové zprávy jdoucí na mobilní zařízení, případně s touto položkou beze strachu vhodně experimentovat (a empirickým výzkumem dojít k přesné aktuální hodnotě).
  3. default_nr_of_msg
    Číselná hodnota v intervalu <0--10>. Označuje defaultní počet SMS zpráv pro došlý e-mail (použije se, pokud není definována jiná hodnota pro konkrétního odesilatele).
  4. reverse_sending
    Možné hodnoty jsou on nebo off. Pokud na mobilní telefon či pager putuje více SMS zpráv (od téže zprávy), lze si tímto vybrat, zda mají putovat v normálním nebo reverzním (od poslední k první) pořadí. Tato funkce byla zařazena na přání majitelů některých typů mobilních telefonů (některé typy mají jinak implementováno čtení fronty nově došlých SMS).
  5. from_field
    Hodnoty FR, RP, RT v libovolném pořadí (musí být uvedeny všechny tři!). FR značí From:, RP značí Return-Path: a RT značí Reply-To:. Pořadí těchto hodnot v položce from_field značí prioritu záznamu v e-mailové hlavičce pro získání adresy odesilatele. Příklad:
         from_field    RT RP FR
    Nejprve se vezme v potaz položka Reply-To:. Pouze pokud tato neexistuje, přejde se na položku Return-Path:. Pokud neexistuje ani tato, získá se adresa odesilatele z položky From:.
  6. get_from
    Určení odesilatele dokáže zjistit program MailForw dvěma způsoby. Buď si hodnotu From: vezme z hlavičky e-mailu, nebo z obálky, kterou vyrábějí při komunikaci poštovní servery. Doposud si MailForw bral implicitně hodnotu z hlavičky zprávy. Hlavičku však dokáže, narozdíl od obálky, libovolně modifikovat průměrně zkušený odesilatel. Proto tato nová možnost. Hodnoty jsou buď env nebo envelope (obálka) nebo header (hlavička).
  7. date
    Hodnoty L, O, N. Používá se právě jedna hodnota. Specifikuje, odkud se má přebírat datum, vkládané k začátku e-mailu do SMS zprávy. L značí lokální datum, vygenerované MTA sendmailem při přijetí zprávy. O značí datum, které je vloženo na ``druhé straně'' při odesílání zprávy. N značí, že se nebude vkládat žádné datum.
    Pozn.: Časový formát data je nyní HH:MM. Oproti verzím 1.0x, kde byl formát HH:MM:SS se tak šetří 3 znaky v SMS zprávě. Údaj o sekundách byl přece jen zbytečně podrobný.
  8. def_cut_up_line
    Číselná hodnota v intervalu <0--X>. Označuje defaultní počet řádek na začátku e-mailu, které se mají ořezat (použije se, pokud není definována jiná hodnota pro konkrétního odesilatele).
  9. def_cut_down_line
    Číselná hodnota v intervalu <0--Y>. Označuje defaultní počet řádek na konci e-mailu, které se mají ořezat (použije se, pokud není definována jiná hodnota pro konkrétního odesilatele).
  10. max_subject_char
    Číselná hodnota v intervalu <0--80>. Definuje maximální počet znaků položky Subject:, které budou odeslány v SMS zprávě. Zbytek bude ořezán (v některých případech může dojít k úmyslnému prodloužení, viz. odstavec 6).
  11. summer_time
    Viz. dokumentace k programu reminder (README.reminder).
  12. name_days
    Viz. dokumentace k programu reminder (README.reminder).
UPOZORNĚNÍ: Korektní vyplnění jednotlivých položek v souboru global, je nutným předpokladem pro správnou funkci programu MailForw!

4.2   Konfigurace souboru users

Soubor ${HOME}/MailForw/conf/users slouží k definici některých hodnot pro konkrétní adresy odesilatelů. MailForw nejprve zkoumá obsah souboru users, pak teprve, nenajde-li příslušné hodnoty, použije hodnoty ze souboru global. Obsahem souboru users jsou řádky o pěti položkách. Položky, stejně jako u souboru global mohou být odděleny libovolným (rozumným) počtem mezer či tabulátorů.

Každý řádek v souboru users vypadá následovně:
     e-mailova_adresa alias nr_of_msg cut_up_line cut_down_line

Konkrétní příklad:
     Jan.Novak@firma.cz sefik 3 0 2
Přijde-li e-mail z adresy Jan.Novak@firma.cz, v SMS zprávě bude odesilatel uveden jako sefik, na přeposlání e-mailu budou použity 3 SMS zprávy, neodřízne se žádná horní řádka, naopak odříznou se 2 řádky na konci e-mailu.

Poznámka (novinka v. 2.13): Nyní lze do souboru users psát nejen konkrétní e-mailové adresy, ale i adresy typu @domena.cz. Tento záznam bude vztažen na všechny maily došlé z domény @domena.cz. Souběžně samozřejmě může existovat i např. záznam vyjimka@domena.cz; přijde-li pak e-mail z této adresy, bude tento konkrétnější záznam vyhodnocen přednostně.

Poznámka (novinka v. 2.16): Kromě konkrétních e-mailových adres a záznamů pro celé domény lze nyní definovat i záznamy pro konkrétního uživatele, bez ohledu na doménu. Zápis vypadá následovně: user@any.where. To znamená, že bude-li definována položka např. jan.novak@any.where, budou hodnoty na tomto řádku vztaženy na všechny uživatele jan.novak, ať už je doména jakákoliv. Samozřejmě, stejně jako v případě doménových záznamů (viz. předchozí poznámka), mohou souběžně existovat konkrétní záznamy, které pak, v případě kladného vyhodnocení, mají vyšší prioritu.

Místo konkrétní hodnoty lze použít znak + (plus), který značí, že se má dotyčná hodnota převzít ze souboru global. Znak + se pochopitelně nevztahuje na první položku, tedy e-mailovou adresu. Znak + na místě druhé položky značí, že se místo aliasu má použít plná e-mailová adresa z první položky.

4.3   Konfigurace souboru slovnik

Slovník zkratek (soubor ${HOME}/MailForw/conf/slovnik) slouží ku zkrácení dlouhých frekventovaných slov, a ve svém důsledku ku dalšímu zvýšení kýžené hutnosti SMS zpráv, jejichž délka (160 znaků) opravdu není převeliká. Oddělovačem položek je v tomto případě opět libovolný (rozumný) počet mezer a tabulátorů.

Jednotlivé řádky obsahují dvě položky:
     dlouhe_slovo    nahrazujici_zkratka

Příklad:
     dedecek    Opa
     babicka    Oma
     pocitac    comp.
UPOZORNĚNÍ: Redukce přes slovník zkratek pracuje na obyčejném principu nahrazování řetězců a je tak prostá všech zákoutí a krás naší mateřštiny (rozuměj českého jazyka), o nějakém respektu vůči pádům a skloňování nemůže být ani řeči (snad v dalších verzích?).

Slovní spojení ``v pocitacovem prumyslu'' tak bude zkráceno na ``v comp.ovem prumyslu'', což sice nevypadá příliš vábně, ale je to kratší. A o to tu koneckonců jde především ...

5   Zpracování e-mailů kódovaných pomocí MIME

Velkou novinkou v. 2.30, oproti svým předchůdkyním, je konečně řádné a úplné zpracování e-mailů, jež jsou rozděleny na jednotlivé části dle MIME specifikace. Je vcelku zřejmé, že na mobilním telefonu či pageru nemá cenu přímo zobrazovat nic jiného, nežli prostý text (typ ``text/plain''), veškeré přiložené soubory (obrázky, PGP signatury, apod.) a jiné části jsou ve finále obvykle pouze nesmyslnou snůškou znaků (jsou kódovány buď pomocí metody ``base64'', nebo ``quoted-printable''). Jsou případy, kdy by se dekódování takto zakódovaných částí mohlo hodit (typicky pro položku Subject: s diakritikou); ``base64&QP decoder'' bude součástí další verze programu MailForw. Speciálním případem je typ ``text/html'', tedy e-mail posílaný ve formátu HTML. I pro tento formát by se v programu MailForw měl objevit převodník do čistého textu, nicméně prozatím lze s výhodou využít faktu, že většina poštovních klientů, posílá-li už e-mail ve formátu HTML, posílá zároveň i část, která je ``text/plain'' (a která tedy bude korektně zobrazena).

Převod došlého e-mailu tedy nyní probíhá následovně: Čistý text (který je ve valné většině případů prvním MIME úsekem) je zobrazen, nezobrazitelné sekce jsou uvozeny kódem M:, následuje označení typu, a dále v závorkách jméno souboru, přísluší-li danému typu. Zde je příklad finálního zobrazení zprávy na mobilním zařízení:
   Toto je pokusny text... M:text/html M:application/jpeg(beauty-girl.jpg)

6   Dynamické prodlužování položky Subject:

Verze 2.30 chytře využívá skutečnosti, že ne vždy se podaří zaplnit relevantní délku posílaných SMS zpráv "úplně po okraj". Například uživatel MT Paegas si může nechat z určité adresy doručovat 2 zprávy (což značí 2 * 149 = 298 využitelných znaků), nicméně přijde třeba e-mail, po jehož zpracování se odešle 250 znaků, 48 znaků (v druhé SMS zprávě) tedy vlastně zůstane nevyužito.

A ono nevyužité místo přijde ke slovu ve chvíli, kdy je délka položky Subject: došlého e-mailu větší, nežli uživatelem definovaná maximální délka (položka max_subject_char v konfiguračním souboru global). Zjistí-li MailForw, že je takovéto nevyužité místo k dispozici, dynamicky prodlouží délku posílané položky Subject:, a to buď do chvíle, kdy dojde k zaplnění tohoto nevyužitého místa, nebo do okamžiku, kdy se již povedlo vměstnat celou položku Subject:.

Tato dynamičnost přichází ke slovu skutečně jen ve chvíli, kdy je určitě volné místo ve finální zprávě, která by se tak jako tak posílala. V žádném případě tedy nedojde k odeslání většího počtu zpráv, než kolik si uživatel ve svých konfiguračních souborech nadefinoval.

7   Odlišování jednotlivých e-mailů pomocí písmen

MailForw, až do verze 2.17, na začátku každé zprávy zobrazoval, kolikátá je to zpráva, a z jakého počtu celkových zpráv pro zasílaný e-mail. Příkladmo tedy přišla třeba jedna zpráva, kde na začátku bylo 1.1, či tři zprávy, mající na začátku 1.3, 2.3 a 3.3. Tento způsob má však dvě nevýhody:
  1. u jedné zprávy je údaj 1.1 možná poněkud redundantní
  2. některým operátorům se občas stává, že zprávy uloží u sebe do fronty a pak je doručují se zpožděním; pokud pak někomu na jeho mobilní telefon přišlo naráz 7 e-mailů rozdělených na celkově cca 30 SMS zpráv (a ještě pokud možno ``napřeskáčku''), stávala se orientace v těchto částech poněkud obtížnější
Pro vyřešení těchto nevýhod začala verze 2.30 používat malých písmen abecedy, jakožto náhradu předchozí tečky a pro e-maily kódované do jedné zprávy současně písmenko nahrazuje původní 1.1. Takže místo 1.1 teď bude např. a (dochází k ušetření dvou znaků), místo 1.2 a 2.2 bude např. 1a2 a 2a2.

Hlavní výhoda spočívá v tom, že se dotyčné písmeno inkrementuje. Tzn. první poslaný e-mail bude obdařen písmenem a, další písmenem b a tak dále, dle anglické abecedy až k písmenu z. Poté celá inkrementace začíná odznova na písmenu a.

Orientace i v záplavě došlých SMS zpráv tak může být nyní mnohem snazší, neboť pomocí těchto písmen je jednoznačně zřejmé, které části SMS zprávy pocházejí z toho, či kterého přeposílaného e-mailu.
Pozn.: Aktuální stav inkrementace si MailForw udržuje v souboru letter.act v konfiguračním adresáři conf. Je tedy vhodné tento soubor nemazat ani nijak needitovat!

8   Zprovoznění programu reminder

Dokumentace k programu reminder se nachází v samostatném souboru (README.reminder).

9   Další poddoteky

... které nešlo zařadit jinam, či které autora napadly až v této chvíli:

10   Ustanovení a licenční podmínky

Program MailForw je uvolněn k neomezenému využívání zcela dle duchu vývoje operačního systému Linux, spadá tedy do kategorie FREEWARE. Autor nepožaduje žádnou registraci ani jakékoliv licenční poplatky. Připomínky, návrhy, upozornění a poděkování jsou ovšem vítány.
UPOZORNĚNÍ: Neomezené využívání se vztahuje k jednotlivcům a k soukromému využívání. Pakliže se jedná o firemní instalaci, nebo dokonce o plánované využití programu ke komerčním účelům (např. prodej programu MailForw jakožto součásti určitého balíku služeb) je nutná dohoda s autorem a získání souhlasu k takovéto činnosti. Viz. též dále oddíl 11.


Autor nenese za funkci programu žádnou zodpovědnost. Předurčení a velikost programu MailForw ovšem v podstatě vylučují jakoukoliv negativní vedlejší činnost programu.

Úspěšné doručení zprávy, zpracované programem, je, v případě odesílání na e-mailovou adresu poskytovanou některým z operátorů, plně závislé na funkčnosti SMTP brány společnosti Radiomobil, a.s., příp. na funkčnosti SMTP brány společnosti Eurotel Praha, s.r.o., příp. na funkčnosti SMTP brány společnosti Radiokontakt Operator, a.s., příp. na funkčnosti SMTP brány společnosti Eurotel Bratislava, a.s., příp. na funkčnosti SMTP brány společnosti Globtel GSM, a.s.

11   Možnost sponsoringu vývoje programu MailForw

Jak bylo uvedeno v oddílu 10, MailForw je freeware, je tedy autorem vyvíjen primárně za účelem bezplatného použití, nicméně pochopitelně také bezplatně, bez jakýchkoliv honorářů či hodinové mzdy.

Tento bod budiž tedy chápán jako jakási žádost autora, právě zejména vůči firmám a komerčním subjektům. Možnosti sponsoringu vývoje tohoto programu jsou široké. Sponsoring může být jednorázový či trvalý, pomocí finančních, ale i jiných prostředků. Veškeré návrhy a další možnosti autor rád uvítá na své e-mailové adrese: klokan@vellum.cz. Každopádně sponsorováním vývoje programu MailForw každý subjekt (ať už fyzická osoba, student, firma, či jiná instituce) získá:
  1. Dobrý pocit (snad) díky pomáhání dobré (rovněž snad) věci.
  2. Vyšší pravděpodobnost, že s očekávanými novinkami se setká v době rozumné. Čím větší celková sponsorská štědrost, tím jistě větší vděčnost a motivace autorova. Kromě toho bude štědrým sponzorům samozřejmě věnována zvláštní péče a jejich přání a požadavky budou o to pečlivěji vyslyšeny (existuje pochopitelně i možnost speciálních a nestandardních úprav ``na klíč'', v několika takových provedeních MailForw již existuje).
  3. Nebude-li to sponsorující subjekt vysloveně odmítat, bude jeho jméno či obchodní název s poděkováním uveden na stránce programu MailForw.

12   Závěrem

... mi dovolte vyslovit přání, aby Vám program MailForw umožnil lépe využít funkce Vašeho mobilního telefonu či pageru, aby pomohl ku větší efektivitě Vaší e-mailové adresy, aby Vám poskytl větší operabilitu a aby Vám zpříjemnil všední pracovní den. Mě samotnému MailForw tímto způsobem již pomáhá.





Děkuji Vám za přízeň.



                     Lukáš Horálek
                     e-mail: klokan@vellum.cz
                     WWW: http://www.MailForw.cz/


This document was translated from LATEX by HEVEA.