Bonjour,
Je fais une mise à jour d'un ancien programme de Delphi 7 vers Delphi 2009, j'ai trouvé sur un forum la modification à faire entre TIdAttachment en D7 et TIdAttachmentFile en D2009. Cependant à l'arrivée, la pièce jointe à un nom qui ne correspond pas à celle d'origine (et qui doit surement dépendre de la boîte mail - sur yahoo la pièce jointe se nomme "Application001" et dans une autre boîte mail où je me connecte avec Thunderbird elle s'appelle "Partie 1.2"), et en plus elle n'a pas d'extension.
Que faut-il modifier dans le code suivant, pour que ma pièce jointe arrive avec son nom et son extension d'origine? Merci.
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 Procedure TFormSendEMail.bbSendMailClick(Sender: TObject); var i: integer; IdMessage : TIdMessage; IdSMTP : Tidsmtp; begin Screen.Cursor:= crHourGlass; //Création du message IdMessage:= TIdMessage.Create(nil); IdMessage.From.Address:= eSenderEmail.Text; //Expéditeur IdMessage.Recipients.Add.Address:= cxRecipient.Text; //Destinataire if cbSendCopy.Checked then //Envoie d'une copie à l'adresse de l'expéditeur IdMessage.Recipients.Add.Address:= eSenderEmail.Text; IdMessage.Subject:= eSubject.Text; //Sujet //IdMessage.ContentType:= 'multipart/alternative'; IdMessage.ContentType:= 'text/plain'; IdMessage.Body:= mMessage.Lines; //Message for i:= 0 to FAttachedFiles.Count - 1 do //Pièce jointe begin {$IFNDEF D7} TIdAttachmentFile.Create(IdMessage.MessageParts, FAttachedFiles[i]); {$ELSE} TIdAttachment.Create(IdMessage.MessageParts, FAttachedFiles[i]); //Delphi 7 {$ENDIF} end; {$IFNDEF D7} if IdMessage.MessageParts.Count > 0 then IdMessage.ContentType:= 'multipart/mixed'; for i:= 0 to IdMessage.MessageParts.Count - 1 do if IdMessage.MessageParts[i] is TIdAttachment then begin TIdAttachment(IdMessage.MessageParts[i]).ContentDisposition:= 'attachment; filename="' + TIdAttachment(IdMessage.MessageParts[i]).FileName + '"'; end; {$ENDIF} //Configuration du serveur pour l'envoi IdSMTP:= TIdSMTP.Create(nil); with GlobalLicenseInformation do begin IdSMTP.Host:= MS_SmtpServer; IdSMTP.Port:= MS_PortNumber; if (MS_UseAuthentification) then begin IdSMTP.AuthType:= satDefault; IdSMTP.Username:= MS_UserLogin; IdSMTP.Password:= MS_UserPassword; end; end; //Envoi try try IdSMTP.Connect; if (GlobalLicenseInformation.MS_UseAuthentification) then IdSMTP.Authenticate; IdSMTP.Send(IdMessage); except on e: Exception do MessageDialog(e.Message, mtError, [mbOK], 0); end; finally IdSMTP.Disconnect; IdSMTP.Free; IdMessage.Free; end; Screen.Cursor:= crDefault; end;
Partager