Dovecot IMAPからメールの取得をしようとしてるのですが、

FETCH 8 (BODY.PEEK[1])

FETCH 8 (BODY.PEEK[2])
とすると
*11 FETCH BODY[1]・・・等で取得できるのですが、
FETCH 8 (BODY.PEEK[1.2])
とすると
* 11 FETCH (BODY[1.2] NIL)
となりNILがでて取得できないのですが、何か原因分かりますでしょうか?

情報が少ないと思いますので、可能性で構いませんので、何かアドバイスあればお知らせください。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/03/30 13:07:13
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:JULY No.1

回答回数966ベストアンサー獲得回数247

ポイント100pt

きちんと確認したわけではないのですが、「BODY.PEEK[1.2]」は、メッセージパートの1番と2番、という意味ではなく、「メッセージパート1番の中にあるパート2番」という意味ではないでしょうか?

IMAP4のFETCHオプションの一覧

パート番号の示すパートのボディ部のみを示す。複雑な入れ子の場合には、[1.2] などとピリオドで階層をくくって、下位階層を示すこともできる。


例えば、メールに別のメールが添付されていて、その添付されたメールの中の添付ファイルを取り出す、といった時に「1.2」といった指定をするのではないのでしょうか。

他2件のコメントを見る
id:MrB

なるほど、ということは動作自体には問題ないということですね。ありがとうございます。

2015/03/28 22:46:01
id:JULY

今、ちょうど確認出来ました。

MIME の構造で、最初のパートに本文があるんだけど、そのパートが中が2つのパートに分かれていて、プレーンなテキストと HTML メール、この本文パートの後ろに添付ファイル、という構造のメールを FETCH してみました。

BODY.PEEK[1] とすると、プレーンテキストと HTML メールの部分が取得され、BODY.PEEK[1.1] とすると、そのうちのプレーンテキストの部分、BODY.PEEK[1.2] とすると HTML メールが取れました。

BODY.PEEK[2] とすると、そのメールの添付ファイルが取れました。

ということで、「1.2」という表記は階層構造を意図した指定で間違いないと思います。

2015/03/28 22:59:40

その他の回答0件)

id:JULY No.1

回答回数966ベストアンサー獲得回数247ここでベストアンサー

ポイント100pt

きちんと確認したわけではないのですが、「BODY.PEEK[1.2]」は、メッセージパートの1番と2番、という意味ではなく、「メッセージパート1番の中にあるパート2番」という意味ではないでしょうか?

IMAP4のFETCHオプションの一覧

パート番号の示すパートのボディ部のみを示す。複雑な入れ子の場合には、[1.2] などとピリオドで階層をくくって、下位階層を示すこともできる。


例えば、メールに別のメールが添付されていて、その添付されたメールの中の添付ファイルを取り出す、といった時に「1.2」といった指定をするのではないのでしょうか。

他2件のコメントを見る
id:MrB

なるほど、ということは動作自体には問題ないということですね。ありがとうございます。

2015/03/28 22:46:01
id:JULY

今、ちょうど確認出来ました。

MIME の構造で、最初のパートに本文があるんだけど、そのパートが中が2つのパートに分かれていて、プレーンなテキストと HTML メール、この本文パートの後ろに添付ファイル、という構造のメールを FETCH してみました。

BODY.PEEK[1] とすると、プレーンテキストと HTML メールの部分が取得され、BODY.PEEK[1.1] とすると、そのうちのプレーンテキストの部分、BODY.PEEK[1.2] とすると HTML メールが取れました。

BODY.PEEK[2] とすると、そのメールの添付ファイルが取れました。

ということで、「1.2」という表記は階層構造を意図した指定で間違いないと思います。

2015/03/28 22:59:40
id:MrB

質問者から

MrB2015/03/31 07:55:55

JULYさん丁寧な回答ありがとうございました。

実際はroundcubeの調整をやっていたのですが、

どうもroundcubeの仕様自体が本来2であるべきところが、

1.2になってたりするようでした。

無理やりですが、1.をstr_replaceで消すことでうまくいってるような気がします。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません