Jeśli jesteś właścicielem tej strony, możesz wyłączyć reklamę poniżej zmieniając pakiet na PRO lub VIP w panelu naszego hostingu już od 4zł!

Str. główna i mapa serwisu str. poświęcona aktualnej wersji programu

Konfiguracja programu Mozilla Thunderbird w wersji 1.5.0.x do prawidłowej obsługi języka polskiego i dostosowanie do pracy wielojęzycznej

Opis dotyczy poprzedniej wersji programu, która nie jest już rozwijana. Najwyższa wypuszczona wersja tej generacji to 1.5.0.14, wypuszczona 19.12.2007 r. Strona ma status archiwalny i nie będzie aktualizowana. Opis konfiguracji wcześniejszych wersji 1.0.x oraz uwagi na temat konfiguracji programu Mozilla Suite można znaleźć w poprzedniej archiwalnej wersji strony link prowadzi do podstrony, opis konfiguracji aktualnej wersji znajduje się na stronie głównej działu link prowadzi do podstrony.

Opisane ustawienia powinny również działać z programem Seamonkey, ale nie mam jak ich przetestować. W szczególności opcje konfiguracyjne mogą być rozmieszczone w nieco inny sposób. Z tego powodu zamieściłem kompletne linie konfiguracyjne odpowiadające za każdą opcję wymagającą ustawienia. Z oczywistych powodów nie gwarantuję, że wszystko będzie działać w Seamonkey, chętnie przyjmę uwagi, poprawki i potwierdzenia.

Nazwa poprawnie pisana jest Thunderbird. Inny zapis, taki jak Thunder Bird, Thunder-Bird, czy ThunderBird, jest niepoprawny. Stąd „TB” jako skrót nazwy nie jest zgodny z zasadami tworzenia skrótów w polskim języku, a do tego tak pisany skrót jest od lat używany dla programu pocztowego The Bat link do str. zewnętrznej. Proponowane skróty: Tbird, Tb.

Spis treści:

  1. Wprowadzenie, czyli ogólnie o sposobie i metodach konfiguracji.
  2. Zmiana języka interfejsu.
  3. Kodowanie i czcionki – czyli jak ustawić, żeby nie wysyłać ani nie oglądać krzaków:
    1. Ustawienie czcionek i charsetu – jak ustawić ISO-8859-2 i jak poprawnie widzieć, co inni piszą.
    2. Ustawienie kodowania transportowego i długości wysyłanych linii – jak ustawić wysyłanie 8-bit, nie Quoted-Printable, i jak nie wysyłać tasiemcowych linii wyjeżdżających u adresata za ekran.
    3. Przywrócenie prawidłowego deklarowania charsetu US-ASCII.
    4. Ustawienia programu używanego w środowisku wielojęzycznym: konfiguracja automatycznego doboru charsetu – jak sprawić, żeby program sam próbował wysłać list w jednym z pasujących charsetów.
    5. Ustawienia programu używanego w środowisku wielojęzycznym: pisanie w dwóch kierunkach – dla korespondujących również po arabsku, hebrajsku…
    6. Konfiguracja automatycznego użycia najwęższego możliwego kodowania – żeby program listy po polsku wysyłał w unikodzie tylko wtedy, gdy nie może wysłać w ISO-8859-2, a w ISO-8859-2 – gdy nie może wysłać w US-ASCII.
    7. Transliteracja – alternatywa dla unikodu, gdy odbiorca nie może odczytać listu kodowanego w UTF-8.
  4. Test ustawień – sprawdź, czy Twój program prawidłowo wyświetla prawidłowe technicznie listy.
  5. Wbudowana tablica znaków – jak wstawić w list jakiś znak, którego nie ma na klawiaturze.
  6. Konfiguracja i przełączanie podpisów.
  7. Konfiguracja tekstu wprowadzającego, czyli wrotki.
  8. Dodatek: Sprawdzanie pisowni w różnych językach.
  9. Dodatek: Bugi powodujące kłopoty z ogonkami (nie tylko polskimi).
  10. Dodatek: Niedogodności programu mające wpływ na obsługę znaków narodowych w czytanych i wysyłanych listach, ale nie będące bugami.
  11. Dodatek: Wyświetlenie dowolnego pola nagłówka czytanego listu.
  12. Dodatek: Usunięcie uciążliwości w postaci domyślnego wysyłania w formacie HTML (w tym uwagi o konfiguracji zachowania programu podczas korzystania z edytora HTML) i pseudowątkowania po temacie (łączenia listów o identycznym temacie w wątek mimo tego, że ani nagłówek References, ani nagłówek In-Reply-To nie wskazują na to, by dane listy miały ze sobą związek
  13. Gdzie i kiedy nie używać polskich liter (ani innych znaków narodowych lub specjalnych).
  14. Linki.

Taki znaczek: link do str. zewnętrznej przy odsyłaczu oznacza, że odsyłacz prowadzi do strony zewnętrznej.
A taki znaczek: link prowadzi do podstrony – że odsyłacz prowadzi do innej strony w tym serwisie.

1. Wprowadzenie, porady ogólne i ostrzeżenia

Dzięki podanym zmianom, opisanym w p-cie 3.4, w ramach jednego profilu można używać dowolnych kodowań (zdefiniowanych przez użytkownika), które program dobierze automatycznie w zależności od treści, oraz dowolnych podpisów. Dzięki tym ustawieniom nie trzeba zmieniać profilu przed napisaniem wiadomości w innym języku.

W związku z dopuszczeniem unikodu (w transformacji UTF-8) jako równorzędnego z ISO-8859-2 na grupach hierarchii pl.* (patrz posty: qvdjwrm4esfu.dlg@falcon.sloth.hell.pl link do str. zewnętrznejdlptqd$csg$1@news.pse.pl link do str. zewnętrznej, oraz wcześniejsze: wątek cmrv87$ltf$3@debi.pekin.net.pl link do str. zewnętrznej, podwątek zaczynający się od 3dT2dac3kIpn6N34%chopin@akson.sgh.waw.pl link do str. zewnętrznej i post 5kT2kao5eI1s9N34.chopin@akson.sgh.waw.pl link do str. zewnętrznej) przygotowane zostały instrukcje dostosowania programu tak, by prawidłowo wyświetlał i wysyłał maile i posty z uwzględnieniem możliwości stosowania unikodu.

Uwaga: Unikod jest w pełni legalny i dopuszczony do stosowania, ale nie należy słać w UTF-8 postów, które nie zawierają znaków spoza ISO-8859-2. Zgodnie z RFC2046 link do str. zewnętrznej p. 4.1.2 (ostatni akapit) i z opinią wyrażoną w poście qvdjwrm4esfu.dlg@falcon.sloth.hell.pl link do str. zewnętrznej

[...] należy się stosować do zasady najmniejszego
niezbędnego charsetu - pisząc czysto po angielsku należy używać US-ASCII,
pisząc po polsku (czesku, słowacku itd.) - 8859-2, pisząc w języku nie
mającym odpowiedniego ISO 8859-N (albo naraz w kilku językach używających
różnych N) należy używać UTF-8.

Poniżej opisana konfiguracja zapewnia automatyczne stosowanie tej zasady przez program dla wysyłanych maili i postów.

Wyżej wymienione posty zostały napisane przez administratorów najważniejszych serwerów news w Polsce.

Niektóre zmiany możliwe są wyłącznie drogą wpisów w pliku prefs.js. Wpisy te można wprowadzać lub zmieniać na różne sposoby:

  1. W Thunderbirdzie można wejść w Narzędzia ⇒ Opcje ⇒ Zaawansowane (ang. Tools ⇒ Options ⇒ Advanced), i tam na zakładce Ogólne otworzyć okno bezpośredniej konfiguracji pliku prefs.js klikając na przycisk Edytor ustawień (czerwona strzałka):

    Można również zainstalować rozszerzenie about config link do str. zewnętrznej dające dostęp do tego samego okna z menu Narzędzia. Pamiętaj, że używając tej metody dodając nowe wpisy należy dodawać jedynie samą treść wpisu, bez poprzedzającego user_pref(", przecinka między nazwą wpisu i wartością, cudzysłowów ani kończącego );. Przyjrzyj się już istniejącym wpisom w tym oknie i na pewno zobaczysz, co wpisywać, a czego nie. Dla ułatwienia nazwy wpisów (do wprowadzenia tą metodą) mają tło żółte, zaś wartości łańcuchów – jasnozielone (lub inne w przypadku dyskusji tekstu wprowadzającego, czyli tzw. wrotki). Zwróć też uwagę, że wpisy mogą być trzech typów: • logiczne (Boolean, przybierające wartości true lub false), • przybierające jako wartość liczbę naturalną (Integer) lub • łańcuchy (String), czyli ciągi mające określone znaczenie, na przykład lista charsetów, kod języka, odpowiedni fragment tekstu wprowadzającego itp. Zmiany dokonywane tą metodą są stosowane w programie od razu.
  2. W przypadku programu Seamonkey można wpisać w pasek adresu przeglądarki about:config, a następnie edytować istniejące lub dodawać nowe wpisy. Patrz też ostrzeżenie w poprzednim punkcie.
  3. Bezpośrednia edycja pliku prefs.js. Należy zamknąć wszystkie okna programu i następnie otworzyć właściwy plik prefs.js w dowolnym edytorze tekstowym. Gdy korzysta się z większej ilości profili, należy znaleźć właściwy profil. Niektóre wpisy mogą już istnieć w tym pliku, należy wtedy jedynie wyedytować właściwy fragment wpisu. Innych wpisów (na przykład tych dotyczących opcji ustawionych w danym wypadku na domyślne) może w ogóle nie być – nowy wpis zmieniający daną opcję po prostu dodaje się gdzieś w tym pliku, najłatwiej na końcu. W przeciwieństwie do edycji sposobami opisanymi powyżej, należy dodawać kompletne linie, jak zamieszczone w poniższym tekście (można kopiować z tej strony i wstawiać bezpośrednio w plik). Należy pamiętać, że plik ten jest ładowany do pamięci w momencie uruchomienia programu i zapisywany na nowo po każdym zamknięciu programu, wtedy wszystkie linie są zapisywane alfabetycznie – więc nie należy się dziwić, że wpis, który został dodany na samym końcu, nagle z końca zniknął. Inną metodą jest utworzenie w katalogu profilu pliku tekstowego i zmiana jego nazwy na user.js, a następnie dodanie w nim wymaganych wpisów, jak w przypadku dodawania do prefs.js. Plik ten można edytować w dowolnym momencie (również gdy program jest uruchomiony), wpisy w nim zawarte zostaną wprowadzone do prefs.js w momencie kolejnego uruchomienia programu. Z tego wynika, że zmiany ustawień metodą edycji prefs.js lub user.js są stosowane od startu (lub restartu) programu. Należy też koniecznie pamiętać, że aby usunąć wpis dokonany tą metodą (przywrócić wartość domyślną wpisu), nie wystarczy go usunąć z user.js – należy go również usunąć z prefs.js (po zamknięciu wszystkich okien programu).

UWAGA: pliki prefs.js i user.js używają kodowania UTF-8. Należy o tym pamiętać, jeżeli wpisywane wyrażenia zawierają znaki spoza US-ASCII. Wyrażenia wprowadzane przez edytor ustawień będą od razu prawidłowo zakodowane z użyciem UTF-8 – litery z diakrytykami itp. wpisuje się normalnie z klawiatury lub wklejać z tablicy znaków. W przypadku bezpośredniej edycji plików prefs.js i user.js należy albo użyć edytora tekstowego posiadającego opcję zapisu w kodowaniu UTF-8 (przykładowo dla Windows istnieje UniRed link prowadzi do podstronyBabelPad link prowadzi do podstrony), albo użyć sekwencji w postaci ciągu odwrócony ukośnik, mała litera u i czterocyfrowy kod szesnastkowy danego znaku: przykładowo litera ą będzie zapisana jako \u0105. Sekwencje polskich liter i szeregu znaków specjalnych w tej postaci można znaleźć tu link prowadzi do podstrony (w kolumnie JavaScript). Dodatkowo znak \n oznacza nową linię (złamanie wiersza w tym miejscu). Sekwencje i znak nowego wiersza można stosować wyłącznie podczas bezpośredniej edycji plików prefs.js i user.js.

2. Zmiana języka interfejsu

Zmiana języka interfejsu: w miarę potrzeby można zmienić język interfejsu na polski w następujący sposób:

  1. Połącz się z następującym adresem: ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/ link do str. zewnętrznej
  2. Wybierz wersję programu – koniecznie taką samą, do jakiej chcesz doinstalować polski interfejs, następnie platformę, a następnie wejdź do katalogu xpi.
  3. Pobierz plik pl.xpi i zapisz go w łatwo dostępnym katalogu na dysku
  4. Zainstaluj jak każde inne rozszerzenie
  5. Otwórz edytor konfiguracji
  6. Znajdź wpis general.useragent.locale
  7. Zapamiętaj (najlepiej zapisz gdzieś) istniejącą wartość, a następnie zmień ją na pl
  8. Zrestartuj program
  9. Oryginalny język interfejsu przywraca się analogicznie, choć nie trzeba już instalować pliku językowego dla oryginalnego języka

Wspomniany wpis można też wprowadzić bezpośrednio w pliku konfiguracyjnym:

user_pref("general.useragent.locale", "pl");

3. Kodowanie i czcionki

Nie należy wybierać autodetekcji charsetu (Widok ⇒ Kodowanie ⇒ Autodetekcja; należy zaznaczyć Wyłączone), gdyż najczęściej pociaga to za sobą więcej problemów niż korzyści, w tym psucie prawidłowo zakodowanych i zadeklarowanych znaków narodowych, gdy logika programu zawiedzie.

Thunderbird potrafi wyświetlać listy w HTML na trzy sposoby: oryginalny HTML, uproszczony HTML i czysty tekst. Dwie pierwsze opcje powodują, że w przypadku listów wieloczęściowych z częścią HTML i częścią tekstową zostanie pokazana część HTML (w przypadku wyświetlania uproszczonego HTML wiele znaczników zostanie zignorowanych), jedynie gdy list jest wyłącznie w formacie tekstowym, zostanie pokazany czysty tekst. Wybór czystego tekstu w przypadku listów wieloczęściowych z częścią HTML i częścią tekstową powoduje, że zostanie pokazana część tekstowa, a w przypadku listów w formacie tylko HTML wszystkie znaczniki HTML zostaną zignorowane. Wybór jest kwestią osobistych preferencji, wybór następuje z menu Widok ⇒ Treść jako (ang. View ⇒ Message body as). Dla bezpieczeństwa i ochrony przed spamem zaleca się blokowanie ściągania obrazków z zewnętrznych serwerów i niewłączanie obsługi JavaScriptu – obie opcje ustawia się w opcjach pod „Prywatność” (ang. „Privacy”) na zakładce „Ogólne”, domyślnie są zablokowane:

Pozwolenie na ściąganie grafiki z zewnętrznego serwera, gdy nadawcę ma się w książce adresowej (środkowa opcja), jest do uznania użytkownika – spamer przypadkowo może użyć adresu znanego odbiorcy, a wtedy otwarcie takiego listu potwierdzi, że adres działa i jest czytany przez żywego człowieka. Prawdopodobieństwo takiej sytuacji na szczęście jest bardzo małe (ale niezerowe).

Ustawieniom wyświetlania grafiki z zewnętrznych serwerów i obsługi JavaScriptu odpowiadają następujace linie konfiguracyjne:

user_pref("mailnews.message_display.disable_remote_image", true);
user_pref("javascript.allow.mailnews", false);

(dodatkowa linia odpowiedzialna za wyświetlanie lub nie grafiki z zewnętrznego serwera dla pewnych grup nadawców to

user_pref("mailnews.message_display.disable_remote_images.useWhitelist", false);

domyślnie ustawiona na true)

Linią odpowiadającą za format wyświetlanych listów jest

user_pref("mailnews.display.html_as", 1);

(0 – HTML /ustawienie domyślne/, 1 – czysty tekst, 3 – uproszczony HTML; 2 – wyświetla źródło HTML, nie ma zastosowania w normalnym użytkowaniu)

3.1 Wybór domyślnego charsetu i ustawienia czcionek

Po wejściu w Narzędzia ⇒ Opcje ⇒ Wyświetlanie (po ang. Tools ⇒ Options ⇒ Display), na zakładce Fonty:


wybieramy domyślny charset dla odbieranych wiadomości nie zawierających deklaracji – strzałka numer 2 – oraz domyślny charset dla wiadomości wysyłanych – strzałka numer 1. Dla pracy w środowisku języka polskiego standardowo oba charsety będą ustawione jako ISO-8859-2.

Warto również zaznaczyć, by program używał domyślnie wybranego kodowania dla wszystkich listów wychodzących (strzałka 4) – w przeciwnym wypadku program podczas odpowiadania wybierze charset listu, na który się odpowiada, co czasem stwarza problemy (w szczególności gdy odpowiada się na list z deklaracją US-ASCII, bo napisany jest po polskawemu, wówczas Thunderbird wybierze dla odpowiedzi kodowanie ISO-8859-1). Pamiętaj, by nie zaznaczać opcji, by program zawsze stosował wybrane kodowanie do wiadomości przychodzących (strzałka nr 3) – bardzo rzadko zdarza się, że jakaś wiadomość jest w ISO-8859-2, lecz ma nieprawidłową deklarację charsetu (np. ISO-8859-1), natomiast dużo częściej zdarza się, że wiadomość jest prawidłowo zakodowana i zadeklarowana w kodowaniu innym niż ISO-8859-2 (np. UTF-8 albo Windows-1250 w polskich warunkach). Zaznaczenie tej klatki spowoduje psucie treści tych drugich wiadomości. Bez zaznaczenia tej opcji domyślny charset będzie stosowany tylko do wiadomości, które nie mają deklaracji charsetu (np. posty na grupy dyskusyjne wysyłane z nieskonfigurowanego OE).

Ustawieniom tym odpowiadają następujące linie konfiguracyjne:

user_pref("mailnews.send_default_charset", "ISO-8859-2");
user_pref("mailnews.view_default_charset", "ISO-8859-2");
user_pref("mailnews.force_charset_override", false);
user_pref("mailnews.reply_in_default_charset", true);

Linie podane w kolejności numerów strzałek na zrzucie ekranu, czyli: pierwsza linia to ustawienie domyślnego charsetu dla wysyłanych wiadomości, druga – ustawienie domyślnego charsetu dla przychodzących wiadomości, trzecia – opcja, by program stosował kodowanie zadeklarowane w nagłówku czytanej wiadomości (jest to ustawienie domyślne i ta linia w tym ustawieniu normalnie nie jest obecna w prefs.js), zaś ostatnia – opcja, by program zawsze odpowiadał w wybranym kodowaniu.

W powyższym oknie dostępny jest też przycisk „Fonty…” (ang. „Fonts…”), po kliknięciu nań otwiera się okno konfiguracji czcionek dla różnych grup językowych. Dla języka polskiego najważniejsze grupy językowe to zachodnioeuropejska (używana do wyświetlania listów w US-ASCII), środkowoeuropejska (używana do wyświetlania listów w ISO-8859-2) i unikod myląco nazwany „Inne języki” (ang. „Other languages”). Oczywiście w przypadku pracy wielojęzycznej może też być konieczna konfiguracja czcionek z grup innych języków. Należy pamiętać, by dla każdej grupy ustawić czcionkę unikodową zawierającą znaki języków danej grupy. Pod Windows można sobie pomóc rozszerzeniem TTF font properties extension link do str. zewnętrznej – wybierać tylko te czcionki, które zawierają w sobie odpowiednie zakresy Unicode i obsługują odpowiednie strony kodowe.
UWAGA: Nie należy pod żadnym pozorem nigdzie wybierać czcionek nieunikodowych, z czasów Windows 3.x! Czcionki takie mają w nazwie końcówkę określającą skrypt (np. CE – środkowoeuropejski, Cyr – cyrylica, Tur – turecki itd.). Takie czcionki nie będą poprawnie działać, dla każdego kodowania należy wybrać czcionkę unikodową. Co prawda można użyć czcionki nieunikodowej w kodowaniu Windows-1252 lub ISO-8859-1 (zachodnioeuropejskim) do wyświetlania listów w kodowaniu zachodnioeuropejskim, ale nie jest to ani konieczne, ani specjalnie zasadne.
Należy tu wspomnieć, że Thunderbird posiada bardzo dobrze działający system substytucji fontów: jeżeli czcionka używana do wyświetlania treści nie zawiera jakiegoś znaku, program postara się znaleźć czcionkę zawierającą ten znak, i w przypadku powodzenia wyświetli ten znak z użyciem tej znalezionej czcionki. Jest to szczególnie użyteczne w przypadku listów w unikodzie, zawierających wiele znaków z różnych języków.

Jeżeli w oknie kompozycji wśród charsetów dostępnych dla wysyłanych listów (strzałka nr 1) nie ma potrzebnego charsetu, należy go dodać w oknie kompozycji do listy dostępnych charsetów. Należy otworzyć menu Opcje, a następnie otworzyć podmenu Kodowanie i kliknąć na Dostosuj… (ang. Options ⇒ Character encoding ⇒ Customise list …):

W nowo otwartym oknie w lewym panelu zaznacza się żądany charset, a następnie klika na Dodaj:

Za listę dostępnych charsetów odpowiada linia konfiguracyjna:

user_pref("intl.charsetmenu.mailedit", "ISO-8859-2, UTF-8, ISO-8859-1, ISO-8859-15");

W linii tej teoretycznie można również ręcznie dodać US-ASCII (będzie dostępny w menu wyboru charsetu jako Angielski (US-ASCII)), ale używanie go sprawia problemy w przypadku obecności w treści znaków spoza tego charsetu (wszelkich liter z ogonkami, bukw, znaków specjalnych itp.). Użycie okna dostosowywania listy dostępnych charsetów spowoduje usunięcie tego charsetu.

W przypadku pracy wielojęzycznej domyślny charset dla listów nie zawierających deklaracji kodowania można ustawić według własnych, indywidualnych potrzeb (niestety, nie ma możliwości ustawienia osobno dla każdego konta ani tym bardziej w oparciu o dane nadawcy listu, istnieje jedynie możliwość ustawienia domyślnego charsetu dla poszczególnych folderów – patrz poniżej), zaś charset używany domyślnie dla listów wychodzących musi być charsetem normalnie stosowanym dla co najmniej jednego z języków, w których pisujesz, i nie może zawierać znaków z języka wymagającego innego kodowania. Na przykład przy ustawianiu programu tak, by można było pisać jednocześnie po polsku i niemiecku, należy wybrać tam domyślny charset ISO-8859-1 (stosowany dla języka niemieckiego i nie zawierający polskich liter), a nie ISO-8859-2 (stosowany dla języka polskiego, ale zawierający niemieckie litery – Niemcy mogą mieć trudności po odebraniu wiadomości z deklaracją ISO-8859-2), podobnie jest dla języków polskiego i litewskiego – jako domyślne należy ustawić kodowanie ISO-8859-2 (używane dla języka polskiego i nie zawierające litewskich liter), a nie ISO-8859-13 (kodowanie używane dla litewskiego, ale zawierające polskie litery, choć normalnie kodowanie to nie jest stosowane dla języka polskiego). Szeroka dyskusja doboru charsetu w zależności od kombinacji języków zamieszczona została na osobnej stronie link prowadzi do podstrony.

Thunderbird daje możliwość wybrania domyślnego zestawu znaków w czytanych listach, które nie zawierają deklaracji charsetu, osobno dla każdego serwera news, każdego katalogu pocztowego i dla każdej grupy news. Przydatne jest to szczególnie dla zagranicznych grup dyskusyjnych. Domyślny charset dla serwera ustawia się we właściwościach serwera, na pozycji Ustawienia serwera (ang. Server Settings):

Ustawieniu temu odpowiada wpis konfiguracyjny:

user_pref("mail.server.serverX.charset", "ISO-8859-2");

gdzie serverX to oznaczenie serwera (zamiast X będzie jakaś liczba).

Aby ustawić domyślny charset dla wiadomości wysyłanych na daną grupę dyskusyjną, które nie zawierają deklaracji charsetu (np. zostały wysłane ze źle skonfigurowanego OE), należy kliknąć drugim przyciskiem myszy na nazwie grupy i wybrać z menu kontekstowego pozycji „Właściwości”

po czym pokaże się okienko, w którym można wybrać domyślne kodowanie dla wiadomości przychodzących na tę grupę, które :

Analogicznie można postąpić w przypadku katalogów poczty:

W obu wypadkach należy pamiętać, by nie zaznaczać klatki „Zastosuj domyślne kodowanie do wszystkich wiadomości” – zepsuje to ogonki (czy inne znaki) prawidłowo zakodowane i zadeklarowane, ale w kodowaniu innym niż domyślne.

W przeciwieństwie do prawie wszystkich innych ustawień, ustawienia charsetu dla folderów poczty i grup dyskusyjnych trzymane są w plikach .msf.

3.2 Ustawienie kodowania transportowego i długości wysyłanych linii

Gdy treść listu zawiera znaki spoza US-ASCII (np. znaki polskie, francuskie, znak € itp.), istnieje możliwość wysyłania tych znaków albo zakodowanych z użyciem kodowania Quoted-Printable, albo w postaci 8-bitowej. Wybór należy do użytkownika, ale warto pamiętać, że kodowanie Quoted-Printable jest błędnie obsługiwane przez OE (cytowany tekst w takim wypadku nie jest poprzedzany znakami cytowania), i na grupach dyskusyjnych (przynajmniej w hierarchii pl.*) stosowanie go jest niezalecane (choć nie jest zabronione). Wyboru kodowania dokonuje się w oknie Kompozycja na zakładce Ogólne:

W przypadku klienta mailnews Mozilli należy wejść w opcje konfiguracyjne (Edit ⇒ Preferences), ewentualnie rozwinąć grupę opcji Mail & Newsgroups, zaznaczenie klatki obok „For messages that contain 8-bit characters use 'quoted printable' MIME encoding” oznacza stosowanie kodowania Quoted Printable dla treści, odznaczenie tej klatki powoduje, że znaki spoza US-ASCII w treści będą wysyłane w postaci 8-bitowej.

Za ustawienie wysyłania treści w kodowaniu Quoted-Printable albo bez kodowania odpowiada linia:

user_pref("mail.strictly_mime", false);

(ustawienie domyślne, powoduje wysyłanie treści bez kodowania, normalnie ta linia jest obecna w prefs.js tylko po wybraniu wysyłania w kodowaniu Quoted-Printable, wówczas ma wartość true)

Uwaga: Nie należy pomylić powyższej linii z innym wpisem, mianowicie mail.strictly_mime_headers – ten wpis, zawierający dodatkowe słowo headers i normalnie ustawiony na true, reguluje sprawę kodowania transportowego znaków 8-bitowych w nagłówkach (temat, nadawca, organizacja, różne X-nagłówki). Zmiana tej opcji na false spowoduje, że znaki te będą nieprawidłowo wysyłane jako 8-bitowe (norma internetowa RFC 2822 link do str. zewnętrznej w p. 2.2 wyraźnie zabrania stosowania znaków 8-bitowych w nagłówkach) i będą nieczytelne u innych (może z wyjątkiem użytkowników OE).

W tym samym miejscu można ustawić długość linii. Domyślna wartość (72 znaki) jest zwykle optymalna. Odpowiednia linia konfiguracyjna:

user_pref("mailnews.wraplength", 72);

Niestety, w samym programie nie ma możliwości wyboru kodowania transportowego osobno dla poczty (gdzie czasem zachodzi potrzeba użycia Quoted-Printable) i grup dyskusyjnych (mocno zalecane jest wysyłanie w postaci 8-bitowej, czyli bez kodowania), ani tym bardziej osobno dla poszczególnych kont. Aby móc wybrać kodowanie transportowe osobno dla każdego serwera, należy zainstalować rozszerzenie Mnenhy link do str. zewnętrznej (po polsku link do str. zewnętrznej):

  1. Po kliknięciu drugim klawiszem myszy na serwer lub grupę dyskusyjną należy otworzyć okno konfiguracji folderu:
  2. Kliknąć na przycisk „Dodaj” (ang. „Add”), w nowo otwartym oknie wpisać nazwę opcji konfiguracyjnej, czyli mail.strictly_mime, po czym kliknąć na OK:
  3. Zaznaczyć nowo dodany wpis, kliknąć na „Edytuj” (ang. „Edit”) i zmienić wartość na przeciwną (np. true na false):

3.3 Przywrócenie możliwości wysyłania wiadomości w US-ASCII

Od wersji 0.8 (20040913) program Thunderbird nieprawidłowo deklaruje wiadomości zawierające tylko litery łacińskie jako domyślne kodowanie, np. ISO-8859-2. W przypadku niezaznaczenia używania domyślnego kodowania dla wszystkich wysyłanych listów, co powoduje domyślne stosowanie kodowania listu, na który się odpowiada, przy odpowiadaniu na wiadomość w US-ASCII deklaruje ISO-8859-1. Aby to zmienić, należy wstawić linię (lub w istniejącej zmienić wartość false na true):

user_pref("mail.label_ascii_only_mail_as_us_ascii", true);

Ta linia przywróci prawidłowe zachowanie programu pozwalające na deklarowanie kodowania US-ASCII, a nie ISO-8859-1 czy innego wybranego jako domyślne, gdy treść rzeczywiście zawiera tylko znaki z US-ASCII (zachowanie to jest zgodne z zaleceniem zawartym w normie internetowej RFC 2046 link do str. zewnętrznej p. 4.1.2). Zmianę tę powinny wprowadzić zwłaszcza te osoby, którym zdarza się pisać po polskawemu (czyli bez polskich liter), a także piszącym (również) w języku angielskim, używającym normalnie wyłącznie liter łacińskich.

W Mozilli ten problem nie występuje i dodawanie tej linii, choć nieszkodliwe, jest całkowicie zbędne.

3.4 Ustawienia programu używanego w środowisku wielojęzycznym: konfiguracja kolejności automatycznego wyboru charsetów

Thunderbird ma możliwość konfiguracji, w jakiej kolejności ma automatycznie próbować dobrać odpowiedni charset do zawartości treści pisanej wiadomości. Mechanizm działa tak, że jeżeli w jakimś kodowaniu nie można wysłać wiadomości, to program szuka, czy dla danego kodowania zdefiniowane zostały kodowania alternatywne. Dla danego kodowania można wybrać więcej niż jedno kodowanie alternatywne, program będzie sprawdzał je po kolei. Kodowania alternatywne muszą być skonfigurowane osobno dla każdego kodowania (np. osobno dla ISO-8859-1, dla ISO-8859-2, ISO-8859-13 itd.). Ogólny format wpisu wygląda następująco:

user_pref("intl.fallbackCharsetList.[WYBRANE_KODOWANIE_WYSYLANIA]", "[ALTERNATYWNE_KODOWANIE_1], [ALTERNATYWNE_KODOWANIE_2], [...] , [ALTERNATYWNE_KODOWANIE_n]");

Jako WYBRANE_KODOWANIE_WYSYLANIA wstawiamy kodowanie wybrane jako domyślne dla listów wychodzących, np. ISO-8859-1, a jako ALTERNATYWNE_KODOWANIE_1 – kodowanie innego języka (np. ISO-8859-2). Jeżeli chcemy mieć możliwość samoczynnego wysyłania w unikodzie, bez ręcznego przestawiania charsetu ani oglądania komunikatu, że treść nie może być wysłana w wybranym kodowaniu, to jako ALTERNATYWNE_KODOWANIE_2 wstawiamy UTF-8. Cała linia w naszym przykładzie wygląda tak:

user_pref("intl.fallbackCharsetList.ISO-8859-1", "ISO-8859-2, UTF-8");

Dzięki temu (i dzięki zmianie z punktu 3.3) program zachowuje się następująco:

  1. Gdy treść zawiera tylko łacińskie litery i cyfry – list wysyłany jest z deklaracją US-ASCII,
  2. Gdy treść zawiera znaki spoza US-ASCII – program próbuje go zakodować w kodowaniu wybranym jako domyślne. Kodowanie to będzie optymalne dla niemieckiego. Gdy chcesz pisać po polsku, program nie mogąc zakodować treści w ISO-8859-1 sprawdzi po kolei inne kodowania zapisane w tej linii i w naszym przypadku użyje ISO-8859-2 bez konieczności ingerencji ze strony piszącego,
  3. Gdy ani ISO-8859-1, ani ISO-8859-2 nie będą odpowiednie, wiadomość bez pytania zostanie zakodowana w unikodzie.

Przykłady zestawień języków:

Szeroka dyskusja doboru charsetu w zależności od kombinacji języków zamieszczona została na osobnej stronie link prowadzi do podstrony.

Ponieważ Thunderbird nie udostępnia żadnej sygnalizacji, w jakim charsecie wyśle dany list (o ile kodowanie nie zostało zmienione ręcznie z menu), świadomie pominąłem UTF-8 jako ostatnią pozycję. W pewnych wypadkach wysyłanie listu kodowanego w UTF-8 może być niewłaściwe i lepiej mieć nad tym kontrolę – w przypadku ww. wpisów (z wyjątkiem zestawienia dla polskiego i kaszubskiego) program zapyta, czy ma wysłać w UTF-8. Jeżeli takie ostrzeżenie nie jest Ci potrzebne, możesz śmiało dodać na końcu odpowiedniej linii UTF-8.

3.5 Ustawienia programu używanego w środowisku wielojęzycznym: pisanie dwukierunkowe (od lewej do prawej i od prawej do lewej)

Niektóre języki pisane są od prawej do lewej, na przykład arabski i hebrajski. Dla Thunderbirda i Mozilli zostało przygotowane rozszerzenie BiDi UI link do str. zewnętrznej znacznie ułatwiające pisanie w dwóch kierunkach i czytanie wiadomości pisanych w różnych kierunkach, a zwłaszcza dwukierunkowo na raz.

Uwaga: w przypadku wiadomości zawierających tekst mieszany (pisany częściowo od lewej do prawej, a częściowo od prawej do lewej) może być konieczne użycie formatu HTML, by odpowiednie fragmenty tekstu były pokazane we właściwym kierunku u odbiorcy korzystającego z mniej inteligentnego programu. Gdy na co dzień używamy edytora zwykłego tekstu, edytor HTML możemy uruchomić klikając na Write lub Reply z wciśniętym klawiszem Shift. Wspomniane rozszerzenie działa tylko w oknie kompozycji HTML i pozwala na zmianę kierunku dla wybranego akapitu (wstawiając znacznik HTML „dir="rtl"”, gdy akapit ma być pisany od prawej do lewej, lub „dir="ltr"”, gdy akapit ma być pisany od lewej do prawej). Rozszerzenie działa w połączeniu z wewnętrzną logiką Thunderbirda używającą informacji o zakresie Unicode, z którego pochodzą dane znaki, do ustalania kierunku wyświetlenia danego tekstu.

W przypadku korespondencji z osobami, którzy do czytania używają programów nie posiadających logiki doboru kierunku wyświetlania tekstu w zależności od użytych znaków, ale obsługujących atrybut HTML „dir” (mówiący programowi, w którym kierunku ma być wyświetlany tekst), doraźnie można sobie radzić bez instalowania BiDi UI pisząc w edytorze HTML i wstawiając właściwą deklarację kierunku: z menu Format wybiera się Kolory i tło strony...

i w nowo otwartym oknie (na zrzucie ekranu poniżej okno po lewej stronie) klika się na Edycja zaawansowana:

Jak widać w oknie po prawej stronie można wybrać atrybut „dir” i nadać mu wartość „rtl”. W ten sposób można jedynie wybrać kierunek wyświetlania całości treści.

Należy pamiętać, że wszystkie znaczniki HTML, w tym i ten dotyczący kierunkowości, zostają bezpowrotnie stracone, gdy w momencie wysyłki wiadomość zostaje przekonwertowana do formatu plain-text. W Narzędzia ⇒ Opcje ⇒ Komponowanie ⇒ Opcje wysyłania należy ustawić, by w przypadku wysyłania maila w formacie HTML program pytał, co zrobić, a nie konwertował samoczynnie do formatu zwykłego tekstu.

Rozszerzenie to dodaje również opcję pozwalającą na przełączanie widoku wiadomości czytanej (a właściwie ustawienie wyrównania tekstu do prawej strony) – Widok ⇒ Przełącz kierunek wiadomości (ang. View ⇒ Switch message direction) oraz w menu kontekstowym treści wiadomości, a także przez skrót klawiaturowy Ctrl+Shift+X. Wygląda, że opcja ta działa wyłącznie z wiadomościami pisanymi w HTML i wyświetlanymi jako HTML.

Więcej informacji link do str. zewnętrznej, tekst tylko po hebrajsku, ale obrazki chyba pozwolą się dość dobrze zorientować w temacie.

Uwaga: Autor niniejszego poradnika nie jest w stanie udzielić żadnych dodatkowych informacji na temat wymienności listów pisanych od prawej do lewej między różnymi programami z uwagi na całkowitą nieznajomość żadnego z języków pisanych od prawej do lewej.

3.6 Wykorzystanie mechanizmu automatycznego wyboru charsetów do prawidłowej obsługi unikodu jako jednego z dopuszczonych kodowań

Mechanizm ten można również wykorzystać w środowisku polskojęzycznym. Z kodowaniami obowiązuje zasada, by używać najmniejszego kodowania wystarczającego dla danej treści. Czyli na przykład jeżeli treść zawiera tylko litery łacińskie i cyfry (bo ktoś pisze po polskawemu), to należy zadeklarować kodowanie US-ASCII. Jeżeli treść wiadomości w języku polskim może być zakodowana w ISO-8859-2 (nie zawiera znaków spoza ISO-8859-2), to powinna być wysłana właśnie w ISO-8859-2, nie w UTF-8. Zalecane ustawienia dla języka polskiego zapewniające zgodność z tą zasadą to opisane w p-cie 3.1 ustawienie kodowania domyślnego dla wiadomości wychodzących na ISO-8859-2 i zaznaczenie, by program używał tego kodowania domyślnie dla wszystkich wysyłanych wiadomości (strzałki 1 i 4), a następnie wpisanie następujących linii w prefs.js:

user_pref("intl.fallbackCharsetList.ISO-8859-2", "UTF-8");
user_pref("intl.fallbackCharsetList.ISO-8859-1", "ISO-8859-2, UTF-8");

(oczywiście w dalszym ciągu należy wpisać też linijkę przywracającą możliwość wysyłania w US-ASCII – patrz p. 3.3)

Te ustawienia spowodują następujące zachowanie programu:

  1. Gdy treść zawiera tylko łacińskie litery i cyfry – list wysyłany jest z deklaracją US-ASCII,
  2. Gdy treść zawiera znaki spoza US-ASCII – program próbuje go zakodować w kodowaniu ISO-8859-2. Jeżeli treść da się zakodować w tym kodowaniu, zostanie ono użyte w danej wiadomości. Nastąpi to również wtedy, gdy będziemy odpowiadać na wiadomość kodowaną UTF-8, ale w treści nie będzie znaków spoza ISO-8859-2 (bo np. zostały usunięte wraz ze zbędnym fragmentem cytatu lub wiadomość była zbędnie kodowana w UTF-8, choć ISO-8859-2 wystarczyłoby),
  3. Gdy treść będzie zawierała znaki, których nie da się zakodować w ISO-8859-2, program bez pytania wyśle wiadomość w unikodzie.

Geneza drugiej linijki (tej z substytutami dla kodowania ISO-8859-1) jest następująca: kiedyś przy odpowiadaniu na pewien list Thunderbird uznał, że musi zastosować kodowanie ISO-8859-1. Oczywiście przy próbie wysłania odpowiedzi wyświetlił znajomy komunikat o niemożności wysłania wiadomości w wybranym kodowaniu. Ta linijka sprawia, że więcej takich problemów nie będzie. Wydaje się, że linijka ta nie ma żadnych niepożądanych skutków ubocznych.

Gdy używa się mechanizmu automatycznego doboru optymalnego charsetu, warto rozważyć wyłączenie mechanizmu transliteracji (patrz następny punkt).

3.7 Transliteracja – alternatywa dla unikodu

Gdy w treści pisanego listu zostaną użyte znaki, których nie można zakodować w wybranej stronie kodowej ani ewentualnie w żadnej z alternatywnych stron skonfigurowanych wg wskazówek z p-tu 3.4, podczas wysyłki zostanie wyświetlone następujące okno dialogowe:

Dwie pierwsze możliwości, czyli wysłanie w UTF-8 oraz Anuluj, są oczywiste i znane z poprzednich wersji. Od wersji 1.5 doszła trzecia możliwość: wysyłki w wybranym charsecie. Wbrew ostrzeżeniu zawartym w tym oknie Thunderbird potrafi dokonać transliteracji wielu łacińskich liter ze znakami diakrytycznymi oraz wielu znaków specjalnych na symboliczny zapis używający wyłącznie znaków z US-ASCII. Znaki specjalne są konwertowane w sposób zwykle bardzo zrozumiały (np. ® to (R), € to EUR itd.) Litery z diakrytykami są konwertowane zgodnie z konwencją przedstawioną w RFC 1345 link do str. zewnętrznej i są przedstawiane jako litery łacińskie, za którymi stoi znak symbolizujący diakrytyk. Na przykład polski ogonek to średnik, kropka (nad ż) to kropka, kreska (nad o itp.) to apostrof, zaś skośna kreska w ł to ukośnik. Oto polskie litery w zapisie symbolicznym: a; c' e; l/ n' o' s' z' z..

Funkcję tę można wykorzystać, gdy wiadomo jest, że program odbiorcy nie byłby w stanie odczytać unikodu ani żadnego kodowania 8-bitowego, które umożliwia zakodowanie tych znaków.

Uwaga: tablica przekodowań Thunderbirda nie zawiera znaków alfabetów niełacińskich, np. cyrylicy, arabskiego. Stąd użyteczność tego rozwiązania nie jest wysoka – znaki, których nie ma w tablicy przekodowań programu, zostaną zamienione na znaki zapytania.

Stosowanie tej opcji, gdy zostały zdefiniowane alternatywne charsety (wg p-tu 2.6), daje nieprzewidziane rezultaty – trudno przewidzieć, w jakim kodowaniu zostanie wysłany list. Niekoniecznie będzie to kodowanie domyślne ani kodowanie ustawione w opcjach dla danego listu!

Można wyłączyć mechanizm transliteracji przez usunięcie pliku transliterate.properties znajdującego się w podkatalogu res\entityTables katalogu instalacyjnego Thunderbirda. W szczególności jest to zalecane, gdy używa się mechanizmu automatycznego doboru optymalnego charsetu.

4. Test ustawień

W celu sprawdzenia prawidłowości ustawień wyświetlania można ściągnąć dwa listy zamieszczone na tej stronie, otworzyć i porównać wyniki ze zrzutami ekranu poniżej:


E-mail testowy kodowany ISO-8859-2


E-mail testowy kodowany UTF-8

5. Wbudowana tablica znaków

W oknie kompozycji w trybie HTML dostępna jest tablica znaków, bardzo przydatna przy wstawianiu pojedynczych znaków, których nie mamy na klawiaturze. Dostępna ona jest przez menu Wstaw ⇒ Znaki i Symbole...

Pokaże się wówczas małe okno, w którym można wybrać jedną z kategorii, kolejno od góry: wielkie litery ze znakami diakrytycznymi, małe litery ze znakami diakrytycznymi, wielkie litery inne (np. Æ), małe litery inne i często używane znaki specjalne (znak €, £, ułamki, znaki copyrightu itp.):

6. Podpis

Podpis brany jest z pliku zewnętrznego. Wskutek dyskusyjnych założeń program (w wersji 1.5.x) przyjmuje, że znaki spoza ASCII w tym pliku zawsze są kodowane 8-bitowo w stronie kodowej właściwej dla ustawień regionalnych. Czyli na przykład w polskim Windowsie będzie to kodowanie Windows-1250, a w polskim Linuksie – ISO-8859-2, zaś w rosyjskim Windowsie będzie to kodowanie Windows-1251, a w rosyjskim Linuksie – ISO-8859-5, analogicznie w angielskim Windowsie będzie to kodowanie Windows-1252, a w angielskim Linuksie – ISO-8859-1 itp. Przez to nie można użyć w podpisie znaków spoza danego kodowania systemowego (np. znaków polskich w Thunderbirdzie pracującym na systemie angielskim itp.). Obejście tego ograniczenia jest możliwe przez instalację rozszerzenia Signature switch link do str. zewnętrznej. W wersjach wcześniejszych od 1.1 rozszerzenie to miało tę wadę, że nie wstawiało prawidłowo znaków spoza US-ASCII. Od wersji 1.1 jest możliwe zdefiniowanie w opcjach rozszerzenia (na zakładce „Zaawansowane”, ang. „Advanced”) charsetu używanego w plikach z podpisami – w przypadku pracy w środowisku wielojęzycznym można przygotować pliki z podpisami kodowane UTF-8 (domyślne ustawienie rozszerzenia) lub ewentualnie w jakiejś 8-bitowej stronie kodowej (np. Windows-1250). Nazwa charsetu nie jest wybierana z menu rozwijanego, tylko wpisywana ręcznie. Należy użyć powszechnie przyjętych nazw charsetów tak, jak zostały zarejestrowane w IANA link do str. zewnętrznej, np. Windows-1250, ISO-8859-2 lub UTF-8. Wszystkie pliki z podpisami muszą używać tego samego charsetu. Szczególnie w przypadku pracy wielojęzycznej najwygodniejsze jest stosowanie UTF-8 dla wszystkich podpisów. Należy pamiętać, by tworząc podpisy w Windowsach 2000 i powyżej nie używać notatnika systemowego – choć potrafi on zapisać tekst jako unikod, dodaje na początku trzy znaki (tzw. BOM, znacznik kodowania), który w samym notatniku nie jest widoczny, ale będzie doskonale widoczny w samym liście. Gdy chce się użyć podpisów zdefiniowanych w dawnych czasach, przed instalacją tego rozszerzenia, można albo je przekonwertować do UTF-8, albo na wspomnianej zakładce wpisać Windows-1250.

Podpisy można zmieniać i bez żadnego rozszerzenia, ale proces jest nieco skomplikowany i zmiana siga możliwa jest tylko przed otwarciem okna kompozycji. Sposób ten był przeze mnie używany jeszcze w czasach Netscape Communicatora pod Windows, prawdopodobnie od roku 1998 (oba programy obsługują w ten sam sposób podpisy). Wadą tego rozwiązania jest ograniczenie zestawu znaków do bieżącej strony kodowej systemu, jak opisano powyżej. Sposób podaję jako ciekawostkę:
Podpis musi być brany z pliku tekstowego. W opcjach definiuje się, z jakiego pliku ma być brany podpis. Można przygotować kilka plików z różnymi podpisami (np. w różnych językach), a prosty plik wsadowy DOS załatwi sprawę podstawiania pliku z wybranym podpisem za ten plik ustawiony w opcjach. Robi się to tak:

W wersji 2 podpisy mogą być kodowane zarówno 8-bitowo (program wówczas przyjmuje, że używają kodowania systemowego), jak i UTF-8 (z lub bez BOM).

7. Wrotka

Czyli tekst wprowadzający – w ramach jednego profilu można mieć tylko jedną wrotkę i z uwagi na to, że zapisana ona jest w pliku prefs.js, nie ma praktycznej możliwości zmieniania jej przed napisaniem wiadomości. Pozostaje przygotować wrotkę uniwersalną, zrozumiałą we wszystkich językach, w których się pisuje.

Program pozwala na dość dowolną konfigurację wrotki. Tekst składa się z czterech części i standardowo w wersji angielskiej wygląda tak:
On [data], [autor] wrote:
(oczywiście kolorowe tło dodałem tylko tutaj, dla lepszej ilustracji tego, który wpis odpowiada za którą część wrotki). Kolejne części nazywają się:
On [data] – ondate
, – separator
[autor] wrote – authorwrote
: – colon (czyli dwukropek)
Sama wrotka może przyjąć jedną z czterech możliwości wyglądu, możliwości te są ponumerowane. I tak:
0 – brak wrotki (sprzeczne z netykietą i bardzo niezalecane, bo mylące),
1 – wrotka [autor] wrote: (domyślna)
2 – wrotka w stylu On [data], [autor] wrote:, i
3 – wrotka w stylu [autor] wrote, On [data]: (odwrócona kolejność w porównaniu z wersją nr 2)
Teraz jedną z metod opisanych na początku należy po prostu dodać kilka linii definiujących wrotkę. Poniżej podane są wpisy domyślne (w wersji angielskiej) odpowiedzialne za wyświetlenie podanej powyżej standardowej wrotki:
user_pref("mailnews.reply_header_type", 1);
user_pref("mailnews.reply_header_ondate", "On %s");
user_pref("mailnews.reply_header_separator", ", ");
user_pref("mailnews.reply_header_authorwrote", "%s wrote");
user_pref("mailnews.reply_header_colon", ":");
Pierwsza linia ustala postać wrotki, zaś pozostałe – wygląd kolejnych części wrotki (dla ułatwienia kolory tła odpowiednich części wrotki są te same, co w przykładowej wrotce). Jak widać, zmienna %s jest odpowiedzialna za wstawienie w danym miejscu danej z listu, na który odpowiadamy (odpowiednio zawartość linii From: i Date:). Polskie litery (i inne znaki spoza US-ASCII) wstawiane w pliki .js muszą być zakodowane w UTF-8 lub (tylko w przypadku bezpośredniej edycji plików .js) używać tzw. sekwencji JS. Patrz uwaga o kodowaniu w plikach js we wstępie.

Uwaga: W Thunderbirdzie w oknie about:config widoczna też jest linia mailnews.reply_header_originalmessage (odpowiadająca za treść wrotki używanej przy forwardowaniu w trybie inline) – ale edycja tego wpisu nie ma wpływu na rzeczywistą treść tekstu, który znajdzie się w liście (Bug 224811 link do str. zewnętrznej). Można spróbować wyedytować w pliku mime.properties obecnym w spakowanym archiwum <katalog_programu>\chrome\>pl-PL.jar linię zaczynającą się od 1041= (w przypadku innej wersji językowej archiwum może mieć inną nazwę, np. en-US.jar).

8. Dodatek: Sprawdzanie pisowni w różnych językach

ThunderbirdSeamonkey korzystają z plików słownikowych w formacie Myspell (używanych również w Open Office link do str. zewnętrznej). Z serwera Mozilli można ściągnąć pliki słowników link do str. zewnętrznej pozwalające na sprawdzanie ortografii w licznych językach. Pliki słownika (pakowane razem, zawsze są po dwa pliki na język: .dic i .aff) po ściągnięciu należy rozpakować do podkatalogu components\myspell znajdującego się w katalogu, w którym zainstalowany jest Thunderbird. Inną drogą pozyskania słowników jest skorzystanie ze strony z plikami słowników spakowanymi w formacie xpi link do str. zewnętrznej, które można automatycznie zainstalować np. przez okno instalacji rozszerzeń (ta strona otworzy się również automatycznie po wybraniu w oknie sprawdzania pisowni z listy rozwijanej języków pozycji „Download More”) i po kliknięciu na link w oknie konfiguracji języka. Gdy w nazwach plików słowników zastąpimy podkreślnik przez minus lub usuniemy minus i dwie litery identyfikujące kraj lub region (w zależności od języka – wiele ma wyłącznie jedną odmianę, np. polski, czeski, esperanto, w tych językach wystarczy jedynie nazwa składająca się z dwóch liter stanowiących kod języka, np. pl, cz, eo, inne mają wiele odmian regionalnych, np. angielski, hiszpański, w przypadku tych języków należy zostawić identyfikator kraju, np. en-GB, en-US, es-ES, es-MX), w oknie wyboru języka używanego do sprawdzania pisowni będzie pokazywać się nazwa języka (i ewentualnie kraju jego odmiany), a nie nazwa pliku. Przełączanie języka jest możliwe przez kliknięcie na strzałkę obok ikony sprawdzania pisowni na pasku okna kompozycji

Thunderbird ma również jakże przydatną funkcję sprawdzania pisowni w locie (znaną choćby z wielu edytorów tekstu) – funkcję tę uruchamia się w oknie kompozycji w menu Opcje, zaznaczając odpowiednią opcję:

Wybór słownika i włączenie sprawdzania pisowni w trakcie pisania możliwe też jest w opcjach kompozycji na zakładce Sprawdzanie pisowni (ang. Spelling) zaznaczając klatkę pokazaną czerwoną strzałką:

Należy pamiętać, że program zapamiętuje ostatni ustawiony język i dla nowego listu będzie użyty słownik użyty w poprzednim liście. Niestety nie ma możliwości konfiguracji domyślnego słownika w zależności od odbiorcy, grupy dyskusyjnej itp.

Za ustawienie języka sprawdzania pisowni odpowiada linia:

user_pref("spellchecker.dictionary", "pl");

gdzie pl to nazwa plików sprawdzania pisowni (bez rozszerzenia).

Za włączenie funkcji sprawdzania pisowni w locie odpowiada linia:

user_pref("mail.spellcheck.inline", true);

Należy pamiętać, że moduł sprawdzania pisowni używany w Thunderbirdzie nie ma funkcji proponowania słów bliskoznacznych ani dzielenia na sylaby.

Osoby, które wolą sprawdzać pisownię po napisaniu całości, a nie na bieżąco, mogą wyłączyć sprawdzanie pisowni w locie i sprawdzać pisownię naciskając klawisz F7 lub kombinację Ctrl+K, klikając na ikonę na pasku narzędziowym okna kompozycji lub wybierając z menu Opcje pozycję Sprawdź pisownię (ang. Options ⇒ Check spelling). Wyboru języka sprawdzania pisowni dokonuje się jak wyżej.

Uwaga: w wersji 1.5 nie można było sprawdzać pisowni w języku pisanym cyrylicą. Problem ten został usunięty w wersji 1.5.0.2.

banner strony „Bykom stop!”
autor niniejszej strony popiera akcję „Bykom stop!” propagującą poprawne pisanie po polsku: z polskimi literami i bez błędów link do str. zewnętrznej

9. Dodatek: Bugi powodujące kłopoty z ogonkami (nie tylko polskimi)

1. Niepoprawne wysyłanie znaków spoza ASCII w nagłówkach zdefiniowanych przez użytkownika
Opis buga: Istnieje możliwość dodania do listy rozwijanych nagłówków (standardowo są to To: Cc: Bcc: Reply-To: Newsgroup: i Followup-To:) własnych nagłówków, na przykład X-No-Archive:, Keywords:, Summary: i dowolnych innych. Podczas pisania listu można wówczas dodać odpowiednią zawartość do każdego z tych nagłówków w miarę potrzeb. Znaki spoza ASCII wpisane w te dodatkowe nagłówki są wysyłane jako wielobajtowe sekwencje Unicode. W nagłówkach znaki spoza ASCII muszą być zakodowane Quoted-Printable lub Base64.
Metoda obejścia: Brak – zawartość nagłówka (nagłówków) trzeba zakodować przy użyciu jakiegoś zewnętrznego narzędzia (np. rozszerzenia Mnenhy link do str. zewnętrznej – działa tylko w oknie kompozycji – lub znajdującego się na tej stronie link do str. zewnętrznej i uzupełnić o wymagane znaczniki kodowania).
UWAGA: Ten błąd dotyczy wyłącznie nagłówków zdefiniowanych przez użytkownika i dodawanych jednorazowo w oknie kompozycji. Tekst przeznaczony do dodawania do każdego listu w dowolnym nagłówku, zdefiniowany w pliku prefs.js, będzie prawidłowo zakodowany.

2. Podpis może zawierać jedynie znaki z bieżącej strony kodowej używanej w systemie
Opis buga: Patrz p. 6 powyżej (o podpisie).
Metoda obejścia: Instalacja i konfiguracja rozszerzenia Signature Switch w wersji co najmniej 1.0. W przypadku programu uruchomionego pod Linuksem inne możliwe rozwiązanie to uruchomenie systemu z wyborem kodowania UTF-8 (wówczas pliki z podpisami powinny być oczywiście kodowane UTF-8). W wersji 2 b1 program automatycznie rozpoznaje, czy plik podpisu używa kodowania UTF-8, czy 8-bitowego (w tym drugim przypadku podobnie jak poprzednia wersja przyjmuje, że jest to kodowanie używane przez system operacyjny).

3. Zbędna i nieprawidłowa opcja substytucji kodowania Windows-1252, gdy listu nie można wysłać w kodowaniu ISO-8859-1
Opis buga: Domyślnie program ma opcję, by w przypadku wysyłania listu kodowanego ISO-8859-1 zawierajacego znaki spoza tego charsetu próbować go wysłać jako Windows-1252. Kodowania Windows (tak jak Mac, Amiga, strony kodowe DOS i inne wewnątrzfirmowe rozwiązania) nie mają miejsca w internecie; przyjęte jest stosowanie ISO-8859-15 jako substytutu.
Metoda obejścia: Jeżeli nie korzysta się z mechanizmu automatycznego wyboru charsetu (patrz p. 3.4p. 3.6), należy otworzyć edytor ustawień, znaleźć linię intl.fallbackCharsetList.ISO-8859-1, i skasować wartość Windows-1252 lub zmienić ją na ISO-8859-15. Ponieważ wartości domyślne normalnie nie są wstawiane w plik prefs.js, w przypadku ręcznej konfiguracji tej opcji należy w prefs.js dodać linię:

user_pref("intl.fallbackCharsetList.ISO-8859-1", "");

(wyłącza substytucję dla ISO-8859-1) lub

user_pref("intl.fallbackCharsetList.ISO-8859-1", "ISO-8859-15");

10. Dodatek: Niedogodności programu nie będące bugami

1. We współpracy z niektórymi przeglądarkami litery ze znakami diakrytycznymi i znaki specjalne zawarte w linkach mailto: nie są obsługiwane poprawnie
Opis problemu: Standard HTML pozwala na konstruowanie odsyłaczy uruchamiających okno kompozycji domyślnego mailera z już wstawionym adresem odbiorcy oraz wypełnionymi innymi częściami: tematem, treścią i ewentualnie innymi nagłówkami. Odsyłacz taki wygląda następująco: mailto:adres@server?subject=tytuł_maila&body=początek_treści_maila. Znaki spoza ASCII zawarte w tych linkach mogą ulec zepsuciu, efekt zależny jest od używanej przeglądarki – efekty zawierają się między pełną obsługą, przez obsługę tylko znaków z kodowania odpowiadającego ustawieniu regionalnemu (mogą wystąpić różne efekty w zależności od sposobu zapisania znaków spoza US-ASCII – jako znaki 8-bitowe, encje numeryczne czy ciągi hex), po brak obsługi. Problem bierze się stąd, że z jakichś powodów sposób użycia znaków spoza US-ASCII w linkach mailto jest nieunormowany (patrz RFC 2368 link do str. zewnętrznej p.2). Więcej szczegółów: bug 169388 link do str. zewnętrznej.
Metoda obejścia: Wydaje się, że problem nie istnieje, gdy Thunderbird używany jest w parze z Firefoksem; współpraca z Operą daje najgorsze rezultaty.

2. Wysłane z Thunderbirda załączniki o bardzo długich nazwach (ponad ok. 65 znaków) lub nazwach zawierających polskie litery i inne znaki spoza US-ASCII w wielu innych mailerach i czytnikach mają zmienione, przypadkowe nazwy
Opis problemu: Znaki narodowe w nazwach załączników mogą być kodowane na kilka sposobów. Thunderbird począwszy od wersji 1.5 domyślnie używa systemu opisanego w RFC 2231 link do str. zewnętrznej z listopada 1997 r, który nie tylko w inny sposób koduje znaki narodowe, ale i koduje długie nazwy zawierające tylko znaki US-ASCII. Tymczasem wiele programów tego sposobu kodowania nie obsługuje, ale obsługuje system opisany w RFC 2047 link do str. zewnętrznej (który nie rusza długich nazw załączników, jeżeli nie zawierają znaków spoza US-ASCII).
Metoda obejścia: Choć jest to problem odbiorcy, nie nadawcy (użytkownika Thunderbirda), pomóc może wprowadzenie następującej linii konfiguracyjnej:

user_pref("mail.strictly_mime.parm_folding", 1);

(kodowanie zgodne z RFC 2231 to 2 – domyślne; 0 to inna wersja kodowania zgodnego z RFC 2047)

Dzięki temu Thunderbird będzie kodował nazwy załączników zgodnie z RFC 2047, co zapewni kompatybilność ze starszymi mailerami (i nowszymi, lecz gorszymi, bo nie obsługującymi standardu RFC 2231). Należy tu zaznaczyć, że nawet jeżeli mailer czy czytnik odbiorcy obsługuje wybrany sposób kodowania nazw załączników, jego system operacyjny musi obsługiwać to kodowanie. Istnieją też programy, które nie obsługują żadnego z podanych sposobów kodowania. Obecnie wciąż najbezpieczniej jest nie używać znaków narodowych w nazwach załączników.

11. Dodatek: Wyświetlenie dowolnego pola nagłówka czytanego listu

Istnieją dwie możliwości: gdy zależy nam na wyświetleniu zawartości pól nagłówka „Organization” lub „User-Agent”, można uaktywnić pokazywanie ich (lub jednego z nich) wstawiając w prefs.js jedną lub obie następujące linie (lub w istniejącej zmienić wartość false na true):

user_pref("mailnews.headers.showOrganization", true);
user_pref("mailnews.headers.showUserAgent", true);.

Do wyświetlenia innych nagłówków używa się rozszerzenia Mnenhy (po angielsku) link do str. zewnętrznej lub Mnenhy (po polsku) link do str. zewnętrznej. Konfiguracja sprowadza się do zaznaczenia klatek przy odpowiednich polach nagłówków w opcjach rozszerzenia. Dzięki temu można na przykład wyświetlić deklarację kodowania czytanego listu.

12. Dodatek: Uciążliwości i ich usunięcie

Thunderbird, mimo wielu zalet, cechuje się dwoma ustawieniami, które domyślnie są sprzeczne z panującymi zwyczajami i netykietą (a jedno z nich – z ergonomią i zdrowym rozsądkiem).

12.1. Domyślne wysyłanie wszystkich listów w formacie HTML

Za globalne ustawienie (stosowane do wszystkich nowo tworzonych kont) odpowiadają linie:

user_pref("mail.html_compose", false);
user_pref("mail.identity.default.compose_html", false);

(domyślnie ustawione są na true).

W przypadku już założonych kont ustawienie osobno dla każdego konta można zmieniać z poziomu interfejsu, w opcjach konta na pozycji „Kompozycja i adresowanie” (ang. „Composition & Addressing”):

W razie potrzeby można uruchomić edytor listu w formacie HTML naciskając klawisz Shift i klikając na ikonę „Napisz” lub „Odpowiedz”.

Za to ustawienie odpowiada linia:

user_pref("mail.identity.idX.compose_html", false);

gdzie idX to numer konta (opcja domyślnie jest ustawiona na true).

12.1.1. Ustawienia i uwagi dotyczące wysyłania HTML

Niektórzy użytkownicy wolą korzystać z edytora HTML z uwagi na jego nieco odmienne zachowanie. Thunderbird (i cała reszta programów pocztowych opartych o silnik Gecko) cechuje się bardzo dobrą jakością konwersji z HTML do zwykłego tekstu. Przy korzystaniu z edytora HTML do pisania listów, które mają być wysłane jako zwykły tekst, można sobie ułatwić życie następującymi ustawieniami:

  1. W książce adresowej zaznaczyć we właściwościach każdego odbiorcy, czy życzy sobie otrzymywać listy w formacie zwykłego tekstu, czy HTML. Niezależnie od innych ustawień list adresowany do takiego odbiorcy, tworzony w edytorze HTML, zostanie automatycznie wysłany w żądanym formacie (HTML, jeżeli zaznaczono HTML, skonwertowany do czystego tekstu, jeżeli zazanczono czysty tekst).
  2. Otworzyć okno opcji wysyłania (Kompozycja ⇒ zakładka Ogólne ⇒ przycisk Opcje wysyłania…; ang. Composition ⇒ zakładka General ⇒ przycisk Send Options…):

    i w nowo otwartym oknie na zakładce Domeny zwykłego tekstu (ang. „Plain Text Domains”) wpisać pełne domeny, do których na pewno nigdy nie należy wysyłać listów w formacie HTML. Niestety, nie ma możliwości zastosowania znaków wieloznacznych (np. gwiazdki: *.pl) ani dodawania serwerów news ani grup dyskusyjnych. Jeżeli odbiorcy z umieszczonej na tej liście nomeny nie zaznaczono w książce adresowej, że życzy sobie otrzymywać HTML (albo w ogóle nie ma go w książce adresowej), list tworzony w edytorze HTML zostanie automatycznie przekonwertowany na zwykły tekst.
  3. Jeżeli odbiorcy nie ma ani w książce adresowej (lub jest, ale nie wybrano dla niego preferowanego formatu listów), ani na liście domen, program postąpi zgodnie z ustawieniami w tym oknie. Możliwości to: zapytać się użytkownika, w jakim formacie wysłać (zachowanie domyślne), wysłać bez pytania jako zwykły tekst (dobra alternatywa), wysłać bez pytania jako HTML (zdecydowanie niezalecane) lub wysłać bez pytania jako przesyłkę wieloczęściową tekst plus HTML (również niezalecane. Wybór opcji wysyłania bez pytania jako zwykły tekst jest zalecany dla tych użytkowników, którzy lubią korzystać z edytora HTML, ale nigdy nie wysyłają listów w formacie HTML lub gdy wysyłają je tylko do osób, które książce adresowej są oznaczone jako odbiorcy w formacie HTML względnie ich pełne domeny znajdują się na zakładce „Domeny HTML” (ang. „HTML Domains”). Wybranie tej opcji spowoduje, że wysłanie listu w formacie HTML do odbiorcy, który nie został specjalnie oznaczony jako odbiorca formatu HTML lub którego domena nie jest na liście domen przyjmujących HTML, będzie niemożliwe bez zmiany ustawień.
  4. Jeżeli korzysta się z edytora HTML, ale w treści nie używa się absolutnie żadnego formatowania, list zostanie wysłany jako zwykły tekst.

Oczywiście nie ma żadnej możliwości konwersji zwykłego tekstu na HTML. List tworzony w edytorze tekstowym będzie wysłany jako zwykły tekst niezależnie od preferencji odbiorcy lub domeny.

Linie konfiguracyjne:

user_pref("mail.default_html_action", 0);

odpowiada za zachowanie w momencie próby wysłania listu w HTML do adresata, który nie został oznaczony jako odbiorca HTML ani jego adres nie jest na liście odbiorców HTML: 0 – zapytać użytkownika, w jakim formacie wysłać (zachowanie domyślne); 1 – wysłać bez pytania jako zwykły tekst, 2 – wysłać bez pytania jako HTML (stanowczo niezalecane); 3 – wysłać bez pytania jako przesyłkę wieloczęściową HTML + czysty tekst.

user_pref("mailnews.html_domains", "domena1,domena2,…,domenaN");
user_pref("mailnews.plaintext_domains", "domena1,domena2,…,domenaN");

domeny są rozdzielone przecinkami (bez spacji).

12.2. Domyślne pseudowątkowanie

Wskutek bardzo dyskusyjnych założeń program domyślnie łączy listy o identycznym temacie w wątek mimo tego, że ani nagłówek References, ani nagłówek In-Reply-To nie wskazuje na to, by dane listy miały ze sobą jakikolwiek związek. Nie ma możliwości wyłączenia tego z poziomu interfejsu graficznego. Zachowanie to powoduje, że np. na grupie testowej wszystkie posty o temacie „Test” (najpopularniejszy temat postów testowych) zostaną bezmyślnie zgrupowane jako wątek. Funkcja ta jest zbędna dla prawie wszystkich użytkowników i w prawie wszystkich sytuacjach, przydatna bywa jedynie w przypadku list mailingowych korzystających ze źle skonfigurowanego serwera, wycinającego nagłówki wskazujące na pozycję listu w wątku. Za wyłączenie tego zachowania odpowiadają linie:

user_pref("mail.strict_threading", true);
user_pref("mail.thread_without_re", false);

(domyślne wartości dla powyższych wpisów są przeciwne). W przypadku folderów, w których program już dokonał powątkowania, należy usunąć odpowiedni plik .msf (w przypadku grup dyskusyjnych straci się wszystkie artykuły z danej grupy).

13. Gdzie i kiedy nie używać polskich liter (ani innych znaków narodowych lub specjalnych)

Oprócz oczywistej sytuacji, gdy wiemy, że odbiorca nie będzie w stanie odczytać polskich (czy innych) liter – np. jest za granicą, korzysta z kafejek internetowych lub z uprzejmości gospodarzy i nie może skonfigurować komputera do wyświetlenia wszystkich znaków – bardzo zalecane jest nieużywanie żadnych takich znaków w nazwach załączników. Spowodowane jest to tym, że znaki spoza US-ASCII mogą być zakodowane na jeden z trzech sposobów:

Aby odbiorca mógł otworzyć załącznik, jego program musi obsługiwać użytą metodę kodowania. Brak obsługi danego sposobu kodowania u odbiorcy skutkuje zmianą nazwy załącznika – gdy list zawiera kilka załączników z opisem ich zawartości w treści, jest to bardzo uciążliwe. Innym problemem jest to, że oprócz zmiany nazwy pliku często zmieniane jest też rozszerzenie (na nic nie mówiące .dat, .att lub .bin), z czym mniej zaawansowany odbiorca sobie nie poradzi. Dodatkowo, nawet gdy program odbiorcy obsługuje metodę kodowania użytą przez nadawcę, w przypadku metod RFC dodatkowo jego system operacyjny i aplikacje używane do otwierania tego typu plików muszą obsługiwać znaki użyte w nazwie. Z kolei w przypadku załączników wysłanych bez kodowania nazwy (tryb Raw) znaki spoza US-ASCII w nazwie mogą zostać wyświetlone w przypadkowym kodowaniu (np. kodowaniu systemowym lub ISO-8859-1), skutkiem czego w nazwie będą krzaki. Nie istnieje proste, w pełni skuteczne rozwiązanie powyższych ograniczeń, jedyny sposób, który na 100% zadziała u wszystkich, to użycie wyłącznie znaków US-ASCII w nazwie załącznika w połączeniu ze zmianą opisaną w p-cie 10 podpunkcie 2.

Należy również pamiętać, że niektóre formaty plików co prawda pozwalają na umieszczenie w treści znaków narodowych, ale nie przenoszą informacji o użytym kodowaniu, przez co w wypadku przesłania takiego pliku jako załącznik u odbiorcy znaki narodowe mogą się nie wyświetlić prawidłowo. Najbardziej powszechny przykład to pliki tekstowe (o rozszerzeniu .txt). W typowym systemie Windows plik taki otwierany jest w systemowym Notatniku, w którym zawsze używane jest kodowanie systemowe i nie ma żadnej możliwości zmiany kodowania treści. Znaki narodowe będą pokazane prawidłowo tylko w sytuacji, gdy komputer odbiorcy używa tego samego kodowania systemowego, którego używa komputer nadawcy. Kodowanie systemowe zależy od locale systemowego (w przypadku korespondencji z osobami przebywającymi w innych krajach należy założyć, że locale nadawcy i odbiorcy będzie się różnić) oraz używanego systemu operacyjnego. Przed przesłaniem takiego załącznika należy się upewnić, że odbiorca będzie mógł zobaczyć znaki narodowe w treści.

14. Linki

Rozwiązania przetestowane na programie Mozilla Thunderbird w wersji 1.5 – 1.5.0.14 pod Windows 2000 SP4 English. Zgodnie z moją wiedzą wszystkie rozwiązania powinny też działać z odpowiednią wersją modułu obsługi poczty i grup dyskusyjnych programu Seamonkey (który używa tego samego silnika), ale nie testowałem ich i nie mogę gwarantować, że wszystkie zadziałają.

licznik