Bonjour,
j'ai un problème pour récuppérer les pièces joints de mon message :
voici le code :
comme vous pouvez le constater sur la partie ci-dessous, j'ai bien trois partie dans mon mail (idMsg.MessageParts.Count)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 //Connexion au serveur POP3.Connect; //On récupère le nombre de messages NbrMsgs := POP3.CheckMessages; lblMsg.Caption := IntToStr(NbrMsgs); ProgressBar1.Min := 0; ProgressBar1.Max := NbrMsgs; ProgressBar1.Position := 0; for i := 1 to NbrMsgs do begin //On récupère l'entête du ième message //POP3.RetrieveHeader(i, idMsg); POP3.Retrieve(i, idMsg); Memo2.Lines.Text := 'idMsg.MsgId:'+idMsg.MIMEBoundary.Boundary+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>Recipients:'+idMsg.Recipients.EMailAddresses+char(10);; Memo2.Lines.Text := Memo2.Lines.Text+'--->>BccList'+idMsg.BccList.EMailAddresses+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>CCList:'+idMsg.CCList.EMailAddresses+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>ReplyTo:'+idMsg.ReplyTo.EMailAddresses+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>FROM:'+idMsg.From.Address+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>OBJET:'+idMsg.Subject+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>AttachmentCount:'+IntTostr(idMsg.MessageParts.AttachmentCount); idMsg.MessageParts.CountParts; if idMsg.MessageParts.Count > 0 then begin for j := 0 to idMsg.MessageParts.count -1 do begin try if Uppercase (idMsg.MessageParts.Items[j].DisplayName)='TIDTEXT'then begin Memo2.Lines.Text := Memo2.Lines.Text+'>>--'+IntTostr(J)+'-->>'+idMsg.MessageParts.Items[j].DisplayName+'-------------'+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>Boundary:'+idMsg.MessageParts.Items[j].Boundary+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>DisplayName:'+idMsg.MessageParts.Items[j].DisplayName+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>StoredPathName:'+idMsg.MessageParts.Items[j].StoredPathName+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>ContentTransfer:'+idMsg.MessageParts.Items[j].ContentTransfer+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>ContentType:'+idMsg.MessageParts.Items[j].ContentType+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>Headers.Text:'+idMsg.MessageParts[j].Headers.Text+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>ExtraHeaders.Text:'+idMsg.MessageParts[j].ExtraHeaders.Text+char(10); Memo2.Lines.Text := Memo2.Lines.Text+' /*************************************/'+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>ALL Body:'+TIdText(idMsg.MessageParts.Items[j]).Body.Text+char(10); Memo2.Lines.Text := Memo2.Lines.Text+' /*************************************/'+char(10); end; if Uppercase (idMsg.MessageParts.Items[j].DisplayName)='TIDATTACHMENT'then begin Memo2.Lines.Text := Memo2.Lines.Text+' /*************************************/'+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>ContentDisposition:'+TIdAttachment(idMsg.MessageParts.Items[j]).ContentDisposition+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>ContentType:'+TIdAttachment(idMsg.MessageParts.Items[j]).StoredPathName+char(10); Memo2.Lines.Text := Memo2.Lines.Text+' /*************************************/'+char(10); end; except showmessage('I:'+IntTostr(I)+'/J'+IntTostr(J) +'/'+idMsg.Subject); end end; end else if idMsg.MessageParts.Count = 0 then begin Memo2.Lines.Text := Memo2.Lines.Text+'--'+IntTostr(0)+'--'+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>Boundary:'+idMsg.MIMEBoundary.Boundary+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>Headers.Text:'+idMsg.Headers.Text+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>ContentTransfer:'+idMsg.ContentDisposition+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>ContentType:'+idMsg.ContentType+char(10); Memo2.Lines.Text := Memo2.Lines.Text+'--->>Headers.Text:'+idMsg.CharSet+char(10); Memo2.Lines.Text := Memo2.Lines.Text+' Body:'+idMsg.Body.text+char(10); end; Memo2.Lines.SaveToFile('D:\'+Inttostr(I)+'.TXT'); Memo2.Lines.Clear; idMsg.Clear; ProgressBar1.Position := I;
mais pourtant chacune des trois partie est de "type" = TIdText et jamais TiAttachment, pourtant on peu voir que cette partie correspond à pièce jointe
>>--1-->>TIdText-------------
--->>Boundary:
--->>DisplayName:TIdText
--->>StoredPathName:
--->>ContentTransfer:
--->>ContentType:
--->>Headers.Text:
--->>ExtraHeaders.Text:
/*************************************/
--->>ALL Body:Content-Type: application/msword; name="MYDOC.doc"
Content-Transfer-Encoding: base64
Content-Description: 151530492-MYDOC.doc
Content-Disposition: attachment; filename="MYDOC.doc"
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAAB
AAAAUQAAAAAAAAAAEAAAUwAAAAEAAAD+////AAAAAFAAAAD/////////////
////////////////////////////////////////////////////////////
Merci de votre aide
Partager