Comment envoyer un mail avec pièce jointe (BCB6)
Salut Tout le monde!
j'ai fait un petit mailer qui me permet d'envoyer des mails.
j'ai utilisé le composant TIdSMTP de la palette Indy Clients (BCB 6)
j'arrive à envoyer un simple texte grace aux propriétés de TIdMessage
Code:
IdSMTP->Send(IdMessage);
Le problème c'est que je voudrais aussi envoyer des pièces jointes avec TIdSMTP. or ni IdSMTP, ni IdMessage ne dispose d'une propriété (de type IdAttachement)qui permettrait d'envoyer de pièces jointes Comme c'est le cas avec le composant TNMSMTP de la palette FastNet
Quelqu'un peut-il m'aider à trouver l'équivalent du code cidesous pour le composant TIdSMTP ou TIdMessage.
Code:
NMSMTP1->PostMessage->Attachments->AddStrings("chemin pièces jointes");
Merci d'avance
Joyeux Noél
René
Envoyer Pièce jointe avec Indy et non FastNet!!!
Salut et Merci pour vos contributions.
Mais j'ai l'impression que vous n'avez pas bien saisie mon problème.
la solution donnée par ce lien
http://www.developpez.net/forums/sho...d.php?t=198685
et l'orientation donnée par Kmaniche porte sur les composants de la palette FasNet. plus précisement le composant TNMSMTP or je veux utlisé les composants TIdSMTP et TIdMessage de la palette Indy Clients et je vais vous dire le pourquoi.
Pour etre un peu plus claire je vous balance ces deux codes qui me permet d'envoyer des mails avec deux composants differents et le problème s'en suivra.
1- le composant TNMSMTP de FastNet
Code:
1 2 3 4 5 6 7 8 9 10
| NMSMTP1->PostMessage->FromAddress = Eexpediteur->Text;//expediteur
NMSMTP1->PostMessage->FromName = Enom->Text;//nom expediteur
NMSMTP1->PostMessage->Subject = Eobject->Text;// objet
NMSMTP1->PostMessage->ToAddress->Add(Edestinataire->Text);// destinataire
NMSMTP1->PostMessage->ToBlindCarbonCopy->Add(Ebcc->Text);// Bcc
NMSMTP1->PostMessage->ToCarbonCopy->Add(Ecc->Text);// Cc
NMSMTP1->PostMessage->Attachments->AddStrings("Chemin fichier");// Pièces jointes
NMSMTP1->PostMessage->Body->Assign(Memo1->Lines);// message
NMSMTP1->SendMail(); // Envoie le mail
MessageBox(0,"Votre Message a Bien été Expédié","Message Envoyé",MB_OK); |
2- les Composants IdSMTP et IdMessage de Indy Clients
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| //IdAttachment1->AddStrings(ListBox1->Items);
IdMessage1->Body = Memo1->Lines;// le message
IdMessage1->From->Name = Enom->Text;// nom expediteur
IdMessage1->From->Address =Eexpediteur->Text;// adresse quelconque
IdMessage1->Recipients->EMailAddresses = Edestinataire->Text;// destinataire
IdMessage1->Subject =Eobject->Text;// object message";
//IdMessage1->Attachments->AddStrings(ListBox1->Items)
IdMessage1->BccList->EMailAddresses = Ebcc->Text;// copies bcc
IdMessage1->CCList->EMailAddresses = Ecc->Text;// copies CC
IdSMTP1->Send(IdMessage1);//envoie le mail
//IdSMTP1->Send(TIdAttachment1);
MessageBox(0,"Votre Message a Bien été Expédié","Message Envoyé",MB_OK); |
3- Le Problème
En (1) NMSTMP de FasNet
Avantage :le composant NMSMTP de Fastnet permet d'envoyer une pièce jointe avec ce code
Code:
NMSMTP1->PostMessage->Attachments->AddStrings("Chemin fichier");
Inconvenient: :
-le mail atterit regulierement dans les dossiers spams
-problème d'authentification se pose constament et trop de messages d'erreur.
En (2) IdSMTP de Indy
Avantage: expédie le mail sans problème et jamais dans le dossier spams
Inconient: je n'arrive pas à envoyer une piece jointe
J'ai bien testé les exemples fournis relatifs à l'utilisation des composants FasNet et Indy mais je n'ai pas trouvé la solution.
j'espère que j'ai été clair dans mon explication ce fois.
alors, Question:
Quelqu'un pourra t'il m'aider à envoyer une pièce jointe avec le composant IdSMTP de Indy? c'est à dire l'equivalent de ce code Fasnet pour Indy:
Code:
NMSMTP1->PostMessage->Attachments->AddStrings("Chemin fichier");
car je ne voudrai pas utiliser FastNet mais Indy.
Merci encore pour vos efforts
Joyeux Noël sitirna
Joyeux Noël Kmaniche
Joyeux Noël à tous les forumeurs!
René!
merci et merci encore Simon
salut Simon!
Merci pour ton code et mon problème a été résolu et voici le code final qui marche tres bien chez moi:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| TIdAttachment * IdAttachment = new TIdAttachment(IdMessage1->MessageParts, "");
IdMessage1->Body = Memo1->Lines;
IdMessage1->From->Name = Enom->Text;
IdMessage1->From->Address =Eexpediteur->Text;
IdMessage1->Recipients->EMailAddresses = Edestinataire->Text;
IdMessage1->Subject =Eobject->Text;
IdMessage1->BccList->EMailAddresses = Ebcc->Text;
IdMessage1->CCList->EMailAddresses = Ecc->Text;
IdAttachment->FileName = ListBox1->Items->Strings[0].c_str() ;
IdSMTP1->Send(IdMessage1);
MessageBox(0,"Votre Message a Bien été Expédié","Message Envoyé",MB_OK); |
Mais seulement, lorsque je joint une pièce , elle est attachée 05 fois (05 exemplaires) dans le courrier de destination et là encore un petit problème.
peut être que mon sauveur fera encore un geste?
Sinon, je suis entierement satisfait et une fois de plus merci
Bonne année 2007
@+
René
Pour les debutants comme moi qui ne savent par où commencer
Pour les nuls comme moi qui seront interréssés par ces codes n'oubliez pas qu'il ya des adresses Pop (lecture mail) et Stmp (envoi) que vous aurez à utiliser.
et voici une liste qui pourra vous aider surtout les POP(pour pouvoir lire les mails)
je ne sais pas si tout fonctionne, mais j'utilise quelques unes.
9 Telecom
Serveur POP : pop.neuf.fr
Serveur SMTP : smtp.neuf.fr
9ONLINE
Serveur POP : pop.9online.fr
Serveur SMTP : smtp.9online.fr
AOL
Serveur POP : non
Serveur SMTP : smtp.fr.aol.com
ALTERN.ORG
Serveur POP : pop.altern.org ou altern.org
CARAMAIL
Serveur POP : pop.lycos.co.uk
Serveur SMTP : smtp.lycos.co.uk
CEGETEL
Serveur POP : pop.cegetel.net
Serveur SMTP : smtp.cegetel.net
CLUB INTERNET
Serveur POP : pop3.club-internet.fr
Serveur SMTP : mail.club-internet.fr
FREEServeur
POP : pop.free.fr
Serveur SMTP : smtp.free.fr
FREESURF
Serveur POP : pop.freesurf.fr
Serveur SMTP : smtp.freesurf.fr
GAWAB
Serveur POP : pop.gawab.com
Serveur SMTP : smtp.gawab.com
GMAIL
Serveur POP : pop.gmail.com
Serveur SMTP : smtp.gmail.com
HOTMAIL
Serveur POP : pop3hot.com (ou/et localhost ?) // c'est bizare ici j'ai jamais essayé
Serveur SMTP : localhost
I(France)
Serveur POP : pop.ifrance.com
Serveur SMTP : smtp.ifrance.com
LA POSTE
Serveur POP : pop.laposte.net
Serveur SMTP : smtp.laposte.net
MAGIC ONLINE
Serveur POP : pop2.magic.fr
Serveur SMTP : smtp.magic.fr
NERIM
Serveur POP : pop.nerim.net
Serveur SMTP : smtp.nerim.net
NET COURRIER
Serveur POP : mail.netcourrier.com
Serveur SMTP : idem que celui de votre FAI
NOOS
Serveur POP : pop.noos.fr
Serveur SMTP : mail.noos.fr
OREKA
Serveur POP : mail.oreka.fr
Serveur SMTP : mail.oreka.fr
SYMPATICO
Serveur POP : pop1.sympatico.ca
Serveur SMTP : smtp1.sympatico.ca
TELE2
Serveur POP : pop.tele2.fr
Serveur SMTP : smtp.tele2.fr
TISCALI
Serveur POP : pop.tiscali.fr
Serveur SMTP : smtp.tiscali.fr
TISCALI-FREESBEE
Serveur POP : pop.freesbee.fr
Serveur SMTP : smtp.freesbee.fr
WANADOO
Serveur POP : pop.wanadoo.fr
Serveur SMTP : smtp.wanadoo.fr
YAHOO
Serveur POP : pop.mail.yahoo.fr
Serveur SMTP : smtp.mail.yahoo.fr
Mais il arrive que lors de l'envoi il ait cette erreur "Connection Closed GraceFully" que je minimise, parceque lorsque je me reconnecte pour la deuxième fois le pb ne se pose plus et pap tout fonctionne
Bonne année 2007 à tout le monde!
@+
René