IdPOP3でメールを受信する
IdPOP3 (Delphi 6付属) でメールを受信する方法です。サンプルを見ればだいたい分かるんですが、本文を日本語に変換する方法が分からなかったので EarthWave Soft さん作のjconvert.pas を利用しました。Indy だけで出来る方法があったら教えてください。
| ■ IdPOP3 の使用例 |
procedure TForm1.Button7Click(Sender: TObject);
var
Msg : TIdMessage;
i, x : integer;
s : string;
begin
IdPOP31.Host := 'mail.xxx.co.jp';
IdPOP31.Port := 110;
IdPOP31.UserId := 'userid';
IdPOP31.Password:= 'password';
IdPOP31.Connect;
for i := 1 to IdPOP31.CheckMessages do begin
Msg := TIdMessage.Create(Self);
IdPOP31.Retrieve(i, Msg);
Memo1.Lines.Add(Msg.Subject);
for x := 0 to Pred(Msg.MessageParts.Count) do begin
if Msg.MessageParts.Items[x] is TIdText then begin
s := TIdText(Msg.MessageParts.Items[x]).Body.Text;
Memo1.Lines.Add(jconvert.ConvertJCode(s, SJIS_OUT));
end;
end;
end;
IdPOP31.Disconnect;
end;
|
各メッセージは TIdMessage 型で、 TIdPOP3の Retrieve メソッドでひとつずつ受け取ります。メールの総数は TIdPOP3 の CheckMessages メソッドで分かります。本文は TIdMessage の MessageParts プロパティに含まれています。ここには添付ファイルもぶらさがるので MessageParts の内容が本文か添付ファイル化をチェックしてください。