Üdv Mindenkinek.
Segítsetek pls...van egy cgi scriptem ami elkészíti a kimenő email fejlécének From és Subject mezőjét.
Ez a kis script működött is ISO kódolás alatt.
Most ugyanezt kellene megvalósítanom UTF-8 -al és ciril betűkkel.
A probléma, hogy a script valamit elszúr és rossz lesz az adott mező.
Olyan mintha a sorok tördelésekkor rontana, mert ha nem csapom le őket 76 karater alá hanem egybe kiküldöm akkor teljesen jó, csakhát néhány mail szerver dobja az ilyet.
sub my_encode_base64 {
my $res = "";
my $eol = "\n";
pos($_[0]) = 0;
while ($_[0] =~ /(.{1,45})/gs) {
$res .= substr(pack('u', $1), 1);
chop($res);
}
my $encoding=$_[1];
$res =~ tr#` -_#AA-Za-z0-9+/#;
### Fix padding at the end:
my $padding = (3 - length($_[0]) % 3) % 3;
$res =~ s/.{$padding}$/'=' x $padding/e if $padding;
### Break encoded string into lines of no more than 76 characters each:
$res =~ s/(.{1,50})/$1$eol/g if (length $eol);
my @res=split(/\n/,$res);
@res=map{"=?$encoding?B?$_?="}@res;
return join("\n",@res);
}
- 1110 megtekintés
Hozzászólások
Én megnézném ezt:
http://search.cpan.org/~dankogai/Encode-2.35/lib/Encode/MIME/Header.pm
"When you encode, it just encodes UTF-8 string with X encoding then quoted with =?UTF-8?X?....?= . The parts that RFC 2047 forbids to encode are left as is and long lines are folded within 76 bytes per line."
teszt:
use Encode qw/encode decode/;
use encoding cp1250;
binmode STDOUT, ':encoding(cp852)';
print $szoveg = "öüóőúéáűí ÖÜÓŐÚÉÁŰÍ "x10, "\n\n";
print $kodolt = encode( 'MIME-Header', $szoveg ), "\n\n";
print decode( 'MIME-Header', $kodolt ), "\n\n";
Ilyen lesz a kódolt szöveg:
=?UTF-8?B?w7bDvMOzxZHDusOpw6HFscOtIMOWw5zDk8WQw5rDicOBxbDDjSDDtsO8w7PFkQ==?=
=?UTF-8?B?w7rDqcOhxbHDrSDDlsOcw5PFkMOaw4nDgcWww40gw7bDvMOzxZHDusOpw6HFsQ==?=
=?UTF-8?B?w60gw5bDnMOTxZDDmsOJw4HFsMONIMO2w7zDs8WRw7rDqcOhxbHDrSDDlsOcw5M=?=
=?UTF-8?B?xZDDmsOJw4HFsMONIMO2w7zDs8WRw7rDqcOhxbHDrSDDlsOcw5PFkMOaw4nDgQ==?=
=?UTF-8?B?xbDDjSDDtsO8w7PFkcO6w6nDocWxw60gw5bDnMOTxZDDmsOJw4HFsMONIMO2w7w=?=
=?UTF-8?B?w7PFkcO6w6nDocWxw60gw5bDnMOTxZDDmsOJw4HFsMONIMO2w7zDs8WRw7rDqQ==?=
=?UTF-8?B?w6HFscOtIMOWw5zDk8WQw5rDicOBxbDDjSDDtsO8w7PFkcO6w6nDocWxw60gw5Y=?=
=?UTF-8?B?w5zDk8WQw5rDicOBxbDDjSDDtsO8w7PFkcO6w6nDocWxw60gw5bDnMOTxZDDmg==?=
=?UTF-8?B?w4nDgcWww40g?=
- A hozzászóláshoz be kell jelentkezni
bocs olvasgattam...
de nem akar jó lenni az ékezet :)
szerk: mármint ami kimegy emailben ezzel a módszerrel és csak az említett From és Subject mezőnél, a tartalom teljesen jó.
Itt a lap alján találtam róla valami: http://search.cpan.org/~gaas/MIME-Base64-3.08/Base64.pm
- A hozzászóláshoz be kell jelentkezni
> de nem akar jó lenni az ékezet :)
A 'cp1250', 'cp852' nem gondolkodtatott el? :-)
- A hozzászóláshoz be kell jelentkezni
De, de akkor ezzel az a gond, hogy a teljes lap elkezdi használni és rosszak lesznek a szövegek.
(Igen, tudom... :)
- A hozzászóláshoz be kell jelentkezni