![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
perlでメールを受信して、添付ファイル部分をファイルにするスクリプトを書こうとしているのですが
知識がなく進めません。
単なるメールの受信は Mail::POP3Clientを使えば、簡単に出来ましたが
BODY部で、本文と 添付ファイルを区別して
本文には $honbun
添付ファイル @tenpu({-fname=>ファイル名, -content=>中身ファイル}, ...
という風に、簡単にメールボディ部を切り分ける方法やモジュールはあるのでしょうか?
例)
This is a multi-part message in MIME format.------=_NextPart_000_000F_01C59927.53E8
B0E0Content-Type: text/plain;format=flowed;charset="iso-2022-jp";reply-type=
originalContent-Transfer-Encoding: 7bit------=_NextPart_000_000F_01C59927.53E8B0E0C
ontent-Type: application/octet-stream;name="Tk-800.024.tar.gz"Content-Transfer-En
coding: base64Content-Disposition: attachment;filename="Tk-800.024.tar.gz"H4sICBX
bhDwCA1RrODAwLjAyNC50YXIA7DxrV9vIkvka/Yq6xBvLQX7ySnDCxRgTvAs2i0weJx
...
No.1ベストアンサー
- 回答日時:
添付ファイル付きのメールは、普通、multipart/mixed とか multipart/form-data の形式になっていると思います。
なので、単純にboundary(デリミタ)で切り分ければいいだけですが、面倒ならMIME::Parserモジュールでも簡単ですね。
複数のファイルが添付されていれば、同じように区切られているだけですが、同じファイル名の場合もあるので注意が必要です。
ちなみに、自分で切り分ける方法をもう少し詳しく書くと、メッセージヘッダの中に「boundary=xxx」なんていうものが書かれているはずですから、これは「xxx」によって区切られている、という意味です。区切ったものは、さらにコンテントヘッダなどが付いていて、続いてボディ部、つまりデータが並んでいます。
No.2
- 回答日時:
net::pop3など標準なモジュールで添付メールを切り出すのは大変だと思います。
MIMEという、メール処理専門のモジュールがあるので、それを使用することを
オススメします。MIMEなら、
mime::parserで解析し、添付メールがファイル切り出されます。
参考URL:http://homepage3.nifty.com/hippo2000/perltips/rc …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで別モジュールへの変数の受...
-
VBAで旧字体を異字体に一括で変...
-
VBAで「メモリが不足しています」
-
VBA This Workbookモジュール...
-
ユーザー定義関数に#NAME?が返...
-
別シートに罫線がひけない
-
ユーザーフォームに最小化・最...
-
モジュールの最大数はいくつな...
-
Form間の値の渡し方
-
VBでグローバル変数を宣言するには
-
エクセルVBAでシートモジュール...
-
パワーポイントでマクロ(Auto_C...
-
Excel VBA 標準モジュール内で...
-
VBA モジュールで共通に使う変...
-
【vba】フォームに書いてあ...
-
vba userFormのSubを標準モジュ...
-
標準モジュールを削除したい。(...
-
Excel VBA 定義されたプロージ...
-
Excel VBA 『Call』で呼び出す...
-
NEC Livie U LU45L/33D の CP...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
エクセルVBAでシートモジュール...
-
VBAで別モジュールへの変数の受...
-
VBでグローバル変数を宣言するには
-
Excel VBA 『Call』で呼び出す...
-
Excel VBA 定義されたプロージ...
-
VBA This Workbookモジュール...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAで、ユーザーフォーム...
-
ArduinoのジャイロモジュールMP...
-
グラフのX,Y座標を取得したい
-
'Range'メソッドは失敗しました
-
VBAで旧字体を異字体に一括で変...
-
モジュールとクラスの違いって...
-
Excelで時刻になったら知らせて...
-
【vba】フォームに書いてあ...
-
モジュールとは何ですか
-
Access VBA標準モジュールにつ...
-
モジュールの最大数はいくつな...
-
VBのフォームモジュールと標準...
おすすめ情報