Email::MIME::Creator::ISO_2022_JP - Email::MIME mixin to create an iso-2022-jp mail
use Email::Sender::Simple 'sendmail'; use Email::MIME; use Email::MIME::Creator::ISO_2022_JP; use utf8; my $email_jis = Email::MIME->create( header_str => [ From => 'foo@example.com', To => 'bar@example.com', Subject => 'こんにちは', ], attributes => { content_type => 'text/plain', charset => 'iso-2022-jp', encoding => '7bit', }, body_str => 'メールの本文はutf-8で', ); sendmail($email_jis); # in iso-2022-jp no Email::MIME::Creator::ISO_2022_JP; my $email_utf8 = Email::MIME->create( header_str => [ From => 'foo@example.com', To => 'bar@example.com', Subject => 'こんにちは', ], attributes => { content_type => 'text/plain', charset => 'utf-8', encoding => '7bit', }, body_str => 'メールの本文はutf-8で', ); sendmail($email_utf8); # in utf-8
Email::MIME is nice and handy. With header_str and body_str (since 1.900), you don't need to encode everything by yourself. Just pass flagged (decoded) utf-8 strings, and you'll get what you want. However, it only works when you send utf-8 encoded emails. In Japan, there're still some email clients that only understand iso-2022-jp (jis) encoded emails, and its popularity persuaded the Encode maintainer (who's also Japanese) to include its support (since version 2.11, with Encode::MIME::Header::ISO_2022_JP written by Makamaka). I want it to be supported by Email::MIME, but it's too specific and nonsense for the rest of the world. That's why I write this mixin instead of asking to add extra bit to Email::MIME.
header_str
body_str
decode
Encode::MIME::Header::ISO_2022_JP
As of this writing, this mixin doesn't care the tangled issues in the Japanese cellular phone industry (thus not ::Japanese). If you need finer control, just use header/body and encoded string/octets, or send me a patch.
::Japanese
header
body
Both work almost the same as Email::MIME's methods do, with one exception. If you pass utf-8 stings to header_str attribute or header_str_set method, they'll be encoded by Encode::MIME::Header::ISO_2022_JP, instead of Encode::MIME::Header.
header_str_set
Encode::MIME::Header
Actually you don't need to use these directly. As shown in the SYNOPSIS, when this module is used, Email::MIME's original create and header_str_set are replaced with these methods internally. If you want to use the orignal methods again, unimport this module (with no pragma, or unimport method), and they'll be restored.
use
create
no
unimport
As a bonus, this module eliminates Date and MIME-Version headers from each part in a multipart email.
Date
MIME-Version
Email::MIME, Encode
Kenichi Ishigaki, <ishigaki@cpan.org>
Copyright (C) 2009 by Kenichi Ishigaki.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Email::MIME::Creator::ISO_2022_JP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Email::MIME::Creator::ISO_2022_JP
CPAN shell
perl -MCPAN -e shell install Email::MIME::Creator::ISO_2022_JP
For more information on module installation, please visit the detailed CPAN module installation guide.