Bonjour
pour envoyer des mails j'utilise les composants INDY avec une syntaxe issu de la FAQ.
elle marche parfaitement. Mais lorsque des fichiers attaches sont joints, cela n'est pas tjs le cas, parfois ca marche et parfois pas (avec les memes fichiers - il suffit de relancer mon programme et ca marche).
voici la tete du message lorsque ca marche
et voici le meme message lorsque cela ne marche pasCher(e) Collegue,
blabla
signature
This is a multi-part message in MIME format
--oaCfihg=_275Xam37bisC84wFn21PvfewN
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Cher(e) Collegue,
blabla
signature
--oaCfihg=_275Xam37bisC84wFn21PvfewN
Content-Type: application/octet-stream;
name="frederic_10_04.XLS"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="frederic_10_04.XLS"
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAEAAAAAAAAAAA
EAAA/v///wAAAAD+////AAAAACUAAAD/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
etc ........
des idees la dessus ?
olivier
PS
Voici mon code
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 IdSMTP.Port := Port; IdSMTP.Host := SMTP; IdMessage.ClearBody; IdMessage.MessageParts.Clear; IdMessage.ExtraHeaders.Clear; IdMessage.ExtraHeaders.Add(Entete); IdMessage.From.Address := From; IdMessage.Sender.Address := From; IdMessage.ReplyTo.EMailAddresses := From; IdMessage.Recipients.EMailAddresses := A; IdMessage.CCList.EMailAddresses := Cc; IdMessage.BccList.EMailAddresses := Bcc; IdMessage.Subject := Sujet; IF (Attache <> Nil) AND (Attache.Count > 0) THEN Begin // il y a des fichier attache TRY FOR i := 0 TO Attache.Count - 1 DO Begin IF Trim(Attache.Strings[i]) <> '' THEN Begin TIdAttachmentFile.Create(IdMessage.MessageParts, trim(Attache.Strings[i])); //Attache le fichier End; // Fin de IF END; EXCEPT Result := False; IF Log THEN fDivers.Logger.Add('Invisible -I2-'); Raise; END; // fin de TRY / FINALLY End ELSE Begin // il n'ya pas de fichier attache END; // Fin de IF // attache la signature AjoutSignature; IdMessage.Body.Add(Texte); // envoie le mail TRY IdSMTP.Connect; //Connexion IdSMTP.Send(IdMessage); //Envoi du message IdSMTP.Disconnect; //Déconnexion EXCEPT Result := False; IdSMTP.Disconnect; //Déconnexion IF Log THEN fDivers.Logger.Add('Invisible -I3- envoi du mail'); Raise; END;
Partager