掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
メインのメーラーの受信の邪魔をせずに、送られてくるメールのタイトル、アドレス、受信日時のみを取得するには (ID:35911)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
読んで字のごとしさん、多分無理かもさん、ありがとうございます。 メールやインターネットは殆ど判らず、思ったよりも苦戦しています。 メール受信を自動通知してくれるプロパティやメゾットがあると便利なのですが、 今は試しのプログラムですが、ほぼ上記のプログラムを無理矢理タイマーでループさせてます。 メールは、今は自分のヤフーメールで試しています。 作成したいソフトではプララのメールを予定してます。 まだプララの設定では試してないので判らないです。 以下が問題のプログラムです。 今度はFormShowでButton1を読み込んで、そこからタイマーで5秒間隔でButton2を連続実行しています。 何回か連続実行された後「invoild passwad」という、パスワードが無効ですといった感じのエラーが出ます。 やはり下のコードは無理があるのでしょうか? procedure TForm1.Button1Click(Sender: TObject); var Msg : TIdMessage; i : integer; begin memo1.Lines.Clear; IdPOP31.Host := 'pop3アドレス'; IdPOP31.Port := 110; IdPOP31.Username := 'ユーザーネーム'; IdPOP31.Password := 'パスワード'; IdPOP31.Connect; for i := 1 to IdPOP31.CheckMessages do begin Msg := TIdMessage.Create(Self); IdPOP31.RetrieveHeader(i, Msg); //数件の未開封があった場合、変数Sの値は毎回変化する //これでは一件しか記録できない //受信データ取得 s1 := Msg.Subject{タイトル}; s2 := Msg.From.Text{送信者}; s3 := inttostr(IdPOP31.CheckMessages{未開封メール数}); s4 := Msg.Headers.Strings[6]{送信日時}; s5 := datetostr(msg.Date{送信日}); memo1.Lines.Add(s1); memo1.Lines.Add(s2); memo1.Lines.Add(s3); memo1.Lines.Add(s4); memo1.Lines.Add(s5); end; IdPOP31.Disconnect; timer1.Enabled := true; end; procedure TForm1.Button2Click(Sender: TObject); var Msg : TIdMessage; i : integer; begin memo1.Lines.Clear; IdPOP31.Connect; for i := 1 to IdPOP31.CheckMessages do begin Msg := TIdMessage.Create(Self); IdPOP31.RetrieveHeader(i, Msg); //受信データ取得 s1 := Msg.Subject{タイトル}; s2 := Msg.From.Text{送信者}; s3 := inttostr(IdPOP31.CheckMessages{未開封メール数}); s4 := Msg.Headers.Strings[6]{送信日時}; s5 := datetostr(msg.Date{送信日}); memo1.Lines.Add(s1); memo1.Lines.Add(s2); memo1.Lines.Add(s3); memo1.Lines.Add(s4); memo1.Lines.Add(s5); end; IdPOP31.Disconnect; end; procedure TForm1.FormShow(Sender: TObject); begin Button1Click(Sender); end; procedure TForm1.Timer1Timer(Sender: TObject); begin Button2Click(Sender); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.