Encode::MIME::EncWords -- MIME 'B' and 'Q' header encoding (alternative)
use Encode::MIME::EncWords; use Encode qw/encode decode/; # decode header: $utf8 = decode('MIME-EncWords', $header); # encode header with default charset, UTF-8: $header = encode('MIME-EncWords', $utf8); # encode header with another charset: Encode::MIME::EncWords->config(Charset => 'GB2312'); $header = encode('MIME-EncWords', $utf8);
This module implements MIME header encoding described in RFC 2047. There are three variant encoding names and one shorthand special to a charset:
Encoding name Result of encode() Comment ------------------------------------------------------------------- MIME-EncWords (auto-detect B or Q) MIME-EncWords-B =?XXXX?B?...?= Default is UTF-8. MIME-EncWords-Q =?XXXX?Q?...?= ,, MIME-EncWords-ISO_2022_JP =?ISO-2022-JP?B?...?=
All encodings generate the same result by decode().
This module is intended to be an alternative of MIME-* encodings provided by Encode::MIME::Header core module. To find out how to use this module in detail, see Encode.
MIME-*
Class method. Set options by KEY => VALUE pairs. Following options are available.
[encode] Name of character set by which data elements will be converted. Default is "UTF-8". On MIME-EncWords-ISO_2022_JP it is fixed to "ISO-2022-JP".
"UTF-8"
MIME-EncWords-ISO_2022_JP
"ISO-2022-JP"
[decode/encode] Try to detect 7-bit charset on unencoded portions. Default is "YES".
"YES"
[encode] Name of the header field which will be considered on the first line of encoded result in its length. Default is undef.
undef
[decode/encode] Specify mappings actually used for charset names. Default is "EXTENDED".
"EXTENDED"
[encode] Maximum line length excluding newline. Default is 76.
76
[encode] Whether to do minimal encoding or not. Default is "YES".
For more details about options see MIME::EncWords.
The encoding modules for MIME header encoding are not the magic porridge pot to cook complex header fields properly.
To decode address header fields (From:, To:, ...), at first parse mailbox-list; then decode each element by encoding module. To encode them, at first encode each element by encoding module; then construct mailbox-list of encoded elements. To construct or parse mailbox-list, some modules such as Mail::Address may be used.
Lines are delimited with LF ("\n"). RFC5322 states that lines in Internet messages are delimited with CRLF ("\r\n").
"\n"
"\r\n"
Please report bugs or buggy behaviors to developer.
CPAN Request Tracker: http://rt.cpan.org/Public/Dist/Display.html?Name=MIME-EncWords.
Consult $VERSION variable.
$VERSION
This is experimental release. Features might be changed in the near future.
Development versions of this package may be found at http://hatuka.nezumi.nu/repos/MIME-EncWords/.
Encode, Encode::MIME::Header, MIME::EncWords.
RFC 2047 MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text.
Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>
Copyright (C) 2011 Hatuka*nezumi - IKEDA Soji.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install MIME::EncWords, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MIME::EncWords
CPAN shell
perl -MCPAN -e shell install MIME::EncWords
For more information on module installation, please visit the detailed CPAN module installation guide.