2013-02-25 5 views
0

나는 이메일을 수신하기 위해 &을 보내기 위해 Indy를 사용하고 있습니다. 이제는 ssl 메일 서버가 있고 이메일에서 첨부 파일을받지 못 했습니까? 비 SSL 대인디와 함께 ssl에서 첨부 파일을 다운로드 할 수 없습니다

Memo1.Clear; 
POP3.ConnectTimeout := 20000; 
if POP3.Connected then 
    POP3.Disconnect; 
POP3.Host := '*******'; 
POP3.Port := 995; 
POP3.Username := '*******'; 
POP3.Password := '*******'; 
SSLIOHandler.Host := POP3.Host; 
SSLIOHandler.Port := POP3.Port; 
POP3.IOHandler := SSLIOHandler; 
POP3.UseTLS := utUseImplicitTLS 
try 
    POP3.Connect; 
except 
    Memo1.Text := Memo1.Text + 'Can not connect to server' + #13#10; 
    Memo1.Text := Memo1.Text + '==========' + #13#10; 
end; 
for i := 1 to POP3.CheckMessages do 
begin 
    Msg.Clear; 
    POP3.RetrieveHeader(i, Msg) 
    Memo1.Text := Memo1.Text + 'Subject: ' + Msg.Subject + #13#10; 
    Memo1.Text := Memo1.Text + 'AttachmentCount: ' + IntToStr(Msg.MessageParts.AttachmentCount) + #13#10; 
    Memo1.Text := Memo1.Text + 'MessagePartsCount: ' + IntToStr(Msg.MessageParts.Count) + #13#10; 
    Memo1.Text := Memo1.Text + '==========' + #13#10; 
    for j := 0 to Msg.MessageParts.Count do 
    begin 
    if (Msg.MessageParts.Items[j] is TIdAttachmentFile) then 
    begin 
     //My Code 
    end; 
    end; 
end; 
POP3.Disconnect; 
Memo1.Text := Memo1.Text + 'End of conecction' + #13#10; 

답변

1

SSL 생성하고 이메일을 구문 분석하는 인디의 능력에 아무런 영향을 미치지 않습니다 .... 좀 도와주세요. 개체가 Msg.MessageParts 컬렉션에 없으면 일반적으로 전자 메일 형식이 잘못되었거나 Indy에서 지원하지 않는 형식의 전자 메일이 사용됩니다.

받기 또는 AttachmentCount, RelatedPartCount, 또는 TextPartCount 속성을 설정하지 않는 이메일을로드, 그래서 그들은 항상 수신 할 때 이메일을로드/이메일/저장하지 보낼 때 그 속성에만 사용됩니다 0이됩니다. 이메일을로드/수신 할 때 값을 가지고 이러한 속성을 원하는 경우에, 당신은 Msg.MessageParts.CountParts() 방법을 직접 호출 할 수 있고, 예를 들면 :

POP3.Retrieve(i, Msg); 
Msg.MessageParts.CountParts; 
Memo1.Text := Memo1.Text + 'AttachmentCount: ' + IntToStr(Msg.MessageParts.AttachmentCount) + #13#10; 

마지막으로, 이메일은 첨부 파일이없는 경우 있음을 명심하고, 단순한 일반 텍스트 전자 메일 또는 단일 부분 MIME 전자 메일 인 경우 Msg.MessageParts 컬렉션은 전자 메일 콘텐츠를 보유하지 않으므로 Msg.Body 속성이 대신 사용됩니다. Msg.MessageParts 속성은 여러 부분 및/또는 텍스트가 아닌 데이터가 포함 된 이메일에만 사용됩니다.

+0

답변 해 주셔서 감사합니다. 내가 사용할 수있는 구성 요소를 알고 있습니까? –

+0

무엇을 원하니? 이메일을 받았습니까? TIdPOP3과 TIdMessage는 제대로 작동하므로, 올바르게 사용하면됩니다. –

+0

올바르게 사용했지만 첨부 파일을 가져올 수 없습니까? –

관련 문제