[Perl] MIME::Entityでオレオレエンコード

超メモ

a.pl

#!/usr/local/bin/perl

use MIME::Entity;

my $b = <build(
'To' => 'hoge@localhost',
'Subject' => 'TestMail',
'Encoding' => 'x-myencode',
'Data' => $b
);
print $m->as_string();

→Encodeで、x-myencodeを指定する。

・MIME::Decoder.pm
%DecoderForん所に、 'x-myencode' => 'MIME::Decoder::MyEncode',を追加。

・MIME::Decoder::MyEncode.pm

package MIME::Decoder::MyEncode;
use vars qw(@ISA $VERSION);
use MIME::Decoder;
use MIME::Base64 2.04;
use MIME::Tools qw(debug);

@ISA = qw(MIME::Decoder);

my $EncodeChunkLength = 45;
my $DecodeChunkLength = 32 * 1024;

sub decode_it {
my ($self, $in, $out) = @_;
my $a;

my $nread;
my $buf = '';
while ($nread = $in->read($buf, $EncodeChunkLength)) {
$a = reverse ($buf);
$out->print($a);
}
1;
}

sub encode_it {
my ($self, $in, $out) = @_;
my $encoded;

my $nread;
my $buf = '';
while ($nread = $in->read($buf, $EncodeChunkLength)) {
$encoded = reverse ($buf);
$out->print($encoded);
}
1;
}

1;


これで、a.plを動かせば、本文がオレオレエンコードになる。
このオレオレエンコードを、戻すにはMIME::Parserでなんとかなる。

a2.pl

#!/usr/local/bin/perl

use MIME::Parser;

my $buf=<parse_data(\$buf) or die;
$entity->bodyhandle->print();


a2.plで、変換された本文を元に戻せる。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック