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 の内容が本文か添付ファイル化をチェックしてください。