Thursday, March 10, 2011

Wysyłanie poczty przez mutt (w skrypcie)

"All mail clients suck. This one just sucks less."
The Mutt E-Mail Client
www.mutt.org

Prawda, że ładne hasło? Miałem problem z wysyłaniem wiadomości przez mutt, a właściwie z kodowaniem znaków. Napisałem skrypt, który wysyła powiadomienia o zmianie pliku na listę mailingową. Swoją drogą miało być góra po 10 linii kodu na plik (mniej więcej jak to przedstawiłem we wcześniejszym wpisie), a wyszło prawie 300 linii - jak zwykle :).
Kodowanie w systemie mam ustawione na UTF-8, jak wysyłam e-maila poleceniem

echo "śćńłó" | mutt -s "test ółąę" do@mnie.nie

to nie ma problemów z polskimi znakami, czyli kodowaniem, ale jak wrzucę to w skrypt i odpalę przez crona to w niektórych serwisach (zwłaszcza poczta przez www) jest problem z polskimi znakami.
Zacząłem grzebać w opcjach klienta mutt i znalazłem parę fajnych opcji (plik /etc/Muttrc):

set send_charset="utf-8"
set charset="utf-8"
set edit_headers=yes
set realname="od kogo [jak chcesz]"
set from="to@nie.jestod.root"
set use_from=yes
my_hdr Reply-To: odp@do.mnie.pl

Ta druga rozwiązuje ten problem, szkoda tylko, że przez cały dzień myślałem, że to ta pierwsza - trudno, czasami trzeba się przespać z problemem.

Dlaczego wybrałem Mutt? Wygodny sposób na wysyłanie e-maili z załącznikami (opcja -a)

Jak objawiały się problemy z kodowaniem? Pierwszy to

Content-Type: multipart/mixed; boundary="ZGiS0Q5IWpPtfppv"
powinno być
Content-Type: text/plain; charset=utf-8

oraz

Subject: Zmiana =?unknown-8bit?Q?rozk?= =?unknown-8bit?B?xYJhZHUgemFqxJnEhyAtIFJhZHp5bWnFhHNrYQ==?=

powinno być

Subject: =?utf-8?B?YWFhw7PFgsWExbzFmw==?=

i wszystko jasne, prawda :)

No comments:

Post a Comment