※ ChatGPTを利用し、要約された質問です(原文:MIME emlの解析に関して)
MIME emlの解析に関して
このQ&Aのポイント
Perlを使用して、emlファイルから本文(htmlとplain)を取得する方法について困っています。
現在はEmail::MIMEライブラリを使用しており、入れ子構造の取得が上手くいきません。
解決方法や他のやり方について教えていただけると助かります。
Perlにて、
emlの本文(htmlとplain)の取得をしたいです。
ライブラリとして、
Email::MIME
を使用しております、現在以下の様な感じです。
my $parsed = Email::MIME->new($text);
for my $part ($parsed->parts) {
if($part->{ct}{discrete} !~ /^text/){
}elsif($part->content_type =~ m|text/html|){ #html
}else{ #plain
}
この状態で$part->body_strや$part->bodyで取得が可能かと考えておりましたが、
emlにて入れ子構造が上手く取得出来ず、困っております。
やり方等、如何様でも構いませんので、ご指摘頂ければ幸いで御座います。
sampleのEML※サンプルなのでhtmlはhtml形式になっておりません。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Return-Path: <test@test.jp>
X-Original-To: test@test.jp
Delivered-To: test@test.jp
X-Env-Sender: test@test.jp
Date: Wed, 7 Dec 2011 02:48:11 -0600 (CST)
From: <test@test.jp>
To: test@test.jp
Subject: =?UTF-8?B?dGVzdA==?=
=?UTF-8?B?dGVzdA?=
=?UTF-8?B?dGVzdA?=
=?UTF-8?B?dGVzdA==?=
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_33646_1423332566.1323247678520"
------=_Part_33646_1423332566.1323247678520
Content-Type: multipart/alternative;
boundary="----=_Part_33649_2021685376.1323247678532"
------=_Part_33649_2021685376.1323247678532
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
dGVzdA
==
------=_Part_33649_2021685376.1323247678532
Content-Type: text/html;charset=UTF-8
Content-Transfer-Encoding: base64
dGVzdA==
------=_Part_33649_2021685376.1323247678532--
------=_Part_33646_1423332566.1323247678520--
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\