IdPOP3でメールチェックし送信者を知りたいがエラー

解決


鈴木  2009-09-21 08:22:29  No: 35740

メールチェッカーの作成に挑戦しています。
機能はIdPOP3で新規メールの有無をチェックして有ったら
送信者だけを知りたいと考えています。(複数も)

環境はWindowsXP Pro  Delphi 6 Personalです。
PersonalにはIndyが付いていないので10.0.52をDLしてインストールしました。
Indyを使用した他のサンプルソースを動かしてみたら動きました。

起動するときに次のようなエラーが出ます。
Exception EReadError in module Project1.exe at 0002097B.
IdPOP31.MaxLineAction の読み込み中のエラー : プロパティが存在しません.

すみません、この内容が理解できません。
どうなっているのか教えて頂けませんか。
よろしくお願いいたします。
procedure TForm1.Button1Click(Sender: TObject);
var
  Msg : TIdMessage;
  i, x : integer;
  s : string;
begin
  IdPOP31.Host    :=  '***.****.yahoo.co.jp';
  IdPOP31.Port    :=  110;
  IdPOP31.UserName  := '***********';
  IdPOP31.Password:=  'xxxxxxxxxxxx';
  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;


鈴木  2009-09-21 08:25:07  No: 35741

追記
すみません
コードのサンプルは
http://www.wwlnk.com/boheme/delphi/tips/tec1610.htm
のままです。


igy  2009-09-21 18:06:54  No: 35742

>起動するときに次のようなエラーが出ます。
>Exception EReadError in module Project1.exe at 0002097B.
>IdPOP31.MaxLineAction の読み込み中のエラー : プロパティが存在しません.
>
>すみません、この内容が理解できません。

はずしているかもしれませんが・・・・

Indy9で作成していたプロジェクトを、Indy10がインストールしているDelphiで
開くとき、Indy10でそのプロパティがなくなった場合など、
そのような警告がでるときは、「無視」ボタンを選択すればよさそうですが。

そのメッセージは、作成したプログラムを起動したときに表示しますか?
それとも、プロジェクトを開いたときに表示しますか?


鈴木  2009-09-21 20:04:07  No: 35743

igy さん早速ご返事ありがとうございます。
遅くなってすみません。
Delphi6Personalのプログラムを作成する画面から
実行を押したときです。
作成されているexeをダブルクリックすると例の「問題が発生しました。
送信する、しない」のダイアログが出てその後、同じエラー表示をします。
そのご、ずっと探しましたが
http://www.geocities.co.jp/SiliconValley-Cupertino/7131/Delphi_tips.html
のエラーはないはずなのに 例外 Connection Closed Gracefully が出る
がきになりやってみましたが変化がありませんでした。
よろしくお願いします。m(_ _)m


鈴木  2009-09-21 20:28:09  No: 35744

igy さんすみません。
igyさんの次のアドバイスが気になり

「Indy9で作成していたプロジェクトを、Indy10がインストールしているDelphiで
開くとき、Indy10でそのプロパティがなくなった場合など、
そのような警告がでるときは、「無視」ボタンを選択すればよさそうですが。」

Indyのバージョンを調べましたらIndy9でした。すみません。
そして、Indy10のライブラリバスを外したら
解決しました。

ありがとうございました。


igy  2009-09-21 20:28:30  No: 35745

作成したプログラムを起動したときにメッセージが表示するのでしたら、

>Indy9で作成していたプロジェクトを、Indy10がインストールしているDelphiで
>開くとき、Indy10でそのプロパティがなくなった場合など、
>そのような警告がでるときは、「無視」ボタンを選択すればよさそうですが。

は、関係なさそうですね。
作成したプログラムのFormCreateなどで、何か記述していますか?

また、
新規作成のプロジェクトのフォームにTIdPOP3を置いただけのプログラム
では、エラー表示せずに起動しますか?


igy  2009-09-21 20:30:32  No: 35746

あ、解決されたのですね。
失礼しました。


鈴木  2009-09-21 23:09:23  No: 35747

igy さん有り難うございます。
Personalにindyが付属していないため、DLして
インストするのにめちゃめちゃ苦労しました。
そこで10か9がごちゃごちゃになったみたいです。

>作成したプログラムのFormCreateなどで、何か記述していますか?
いいえ、ありません。

>新規作成のプロジェクトのフォームにTIdPOP3を置いただけのプログラム
では、エラー表示せずに起動しますか?
今となっては再現できませんでした。
indy9をインストしているのにindy10のソースもDLしていてパスを通していましたからその辺で整合性がとれなかったのでしょうか。

indyの世界は初めてで、皆目わかりませんが
いま、送信者のアドレスはどうやって取得するのか勉強中です。
件数とか本文の取得方法は見つけたのですが・・・
これからもよろしくお願いいたします。m(_ _)m


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加