NAME
Email::MIME::Creator::ISO_2022_JP - Email::MIME mixin to create an iso-2022-jp mail
SYNOPSIS
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
DESCRIPTION
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 (decode
d) 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.
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.
METHODS
create_iso_2022_jp, header_str_set_iso_2022_jp
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
.
import, unimport
Actually you don't need to use these directly. As shown in the SYNOPSIS, when this module is use
d, 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.
NOTE
As a bonus, this module eliminates Date
and MIME-Version
headers from each part in a multipart email.
SEE ALSO
AUTHOR
Kenichi Ishigaki, <ishigaki@cpan.org>
COPYRIGHT AND LICENSE
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.