フォーラム


ゲスト  

ようこそ ゲスト さん。このフォーラムに投稿するには 登録が必要です。

ページ: [1]
トピック: Indy 10 を使ったメールの送受信
DEKO
管理者
投稿数: 2691
Indy 10 を使ったメールの送受信
on: 2013/04/07 16:37 Sun

[Indy 10 を使って GMail (UTF-8) を送受信するには? (Delphi 2007 以前)]
http://ht-deko.minim.ne.jp/tech057.html#tech112

[Indy 10 を使って GMail (UTF-8) を送受信するには? (2009 以降)]
http://ht-deko.minim.ne.jp/tech040.html#tech076

[Indy 10 を使ってメール(ISO-2022-JP)を送受信するには? (Delphi 2007 以前)]
http://ht-deko.minim.ne.jp/tech057.html#tech113

[Indy 10 を使ってメール (ISO-2022-JP) を送受信するには? (2009 以降)]
http://ht-deko.minim.ne.jp/tech040.html#tech085

See Also:
[Indy]
http://www.indyproject.org

[indy 最新版 ZIP]
http://indy.fulgan.com/ZIP/

[Indy OpenSSL DLL]
http://indy.fulgan.com/SSL/

DEKO
管理者
投稿数: 2691
Re: Indy 10 を使ったメールの送受信
on: 2013/04/18 10:43 Thu

メール送信できない場合には、SMTP サーバが POP before SMTP を必要としていないかを確認してください。
POP before SMTP が必要な場合には、SMTP でメール送信する前に POP3 で (ヘッダだけでもいいので) メールを受信する必要があります。

Denka
メンバー
投稿数: 5
Re: Indy 10 を使ったメールの送受信
on: 2022/02/02 16:01 Wed

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です。
他のメールソフトで、添付ファイルが付いていることは確認しました。
題名、本文は同じように受け取れています。

解決方法等ご教授いただければ幸いです。

ページ: [1]
WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.029 sec.