TIdPOP3で添付ファイル受信について
Delphi10.4CE で、TIdPOP3を使用してメールの添付ファイル受信をしようとしています。
dekoさんのサンプルを参考にさせて頂き作っています。
https://ht-deko.com/tech040.html#tech076
このページの一番下の「サンプルコード(受信)」です。
とりあえず、ログインからメールの題名と本文の受信はできました。
次に添付ファイルの受信+保存 (今は、とりあえず添付ファイル名を取得) を追加しようと、
いろいろ検索しながらやっていますが上手くいかずに悩んでいます。
ソースはdekoさんのサンプルに数行追加しました。
Msg := TIdMessage.Create(nil);
try
MsgCnt := POP3.CheckMessages;
Memo1.Lines.Add('MsgCnt: ' + MsgCnt.ToString);
for i:=1 to MsgCnt do
begin
POP3.RetrieveHeader(i, Msg);
Msg.NoDecode := (LowerCase(Msg.ContentTransferEncoding) <> 'base64') and
(LowerCase(Msg.ContentTransferEncoding) <> 'quoted-printable');
POP3.Retrieve(i, Msg);
Memo1.Lines.Add('Subject: ' + Msg.Subject);
// Memo1.Lines.Add('Body:');
// Memo1.Lines.Add(Msg.Body.Text);
{ここから}
Msg.MessageParts.CountParts;
Memo1.Lines.Add('CountParts='+Msg.MessageParts.Count.ToString);
for j:=0 to Msg.MessageParts.Count-1 do
begin
if Msg.MessageParts[j] is TIdText then
Memo1.Lines.Add((Msg.MessageParts[j] as TIdText).Body.Text);
if Msg.MessageParts[j] is TIdAttachment then
Memo1.Lines.Add((Msg.messageParts[j] as TIdAttachment).FileName);
end;
{ここまで}
end;
finally
Msg.Free;
end;
ここで、Msg.MessageParts.Countが 0 になってします。
プロバイダーは@Nifyです。
他のメールソフトで、添付ファイルが付いていることは確認しました。
題名、本文は同じように受け取れています。
解決方法等ご教授いただければ幸いです。
|