Envoi de mails avec IdSMTP
Bonjour,
J'ai créé une application pour envoyé des mails sans utiliser Outlook.
La connection au serveur SMTP semble se faire, mais l'envoi du mail ne se fait pas et renvoie une exception non identifié (chaine vide). Voici le code utilisé :
Code:
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
|
TIdSMTP *IdSMTP1 = new TIdSMTP(this);
IdSMTP1->AuthType = atDefault;
IdSMTP1->ConnectTimeout = 5000;
IdSMTP1->Host = "mail.host.com";
IdSMTP1->Username = "user";
IdSMTP1->Password = "pass";
IdSMTP1->Port = 587;
IdSMTP1->UseTLS = utNoTLSSupport;
IdSMTP1->PipeLine = true;
IdSMTP1->Connect();
if (IdSMTP1->Connected()) ShowMessage("connect ok");
TIdMessage *IdMessage1 = new TIdMessage(this);
IdMessage1->UseNowForDate = true;
IdMessage1->CharSet = "utf-8";
IdMessage1->ContentTransferEncoding = "base64";
IdMessage1->ContentType = "multipart/mixed";
IdMessage1->Subject = "test envoi";
IdMessage1->Body->Add("test") ;
IdMessage1->From->Address = "monmail@mail.com";
IdMessage1->From->Domain = "mail.com";
IdMessage1->From->Name = "monNom";
IdMessage1->From->Text = "monmail@mail.com";
IdMessage1->From->User = "monmail";
IdMessage1->ReceiptRecipient->Address = "destin@live.fr";
IdMessage1->ReceiptRecipient->Domain = "live.fr";
IdMessage1->ReceiptRecipient->Name = "destin";
IdMessage1->ReceiptRecipient->Text = "destin@live.fr";
IdMessage1->ReceiptRecipient->User = "destin";
try {
IdSMTP1->Send(IdMessage1);
} catch (Exception &e) {
ShowMessage(e.Message);
}
IdSMTP1->Disconnect(true);
if (!IdSMTP1->Connected()) ShowMessage("disconnect ok"); |
Les messages "connect ok" et "disconnect ok" sont bien affichés, mais aucun mail n'est reçu sur l'adresse d'envoi.
Merci pour vos conseils.
J'avance dans ma prospection, mais les problèmes persistent
Merci pour vos conseils.
1) J'ai téléchargé les exemples INDY en lien, cela correspondait à ce que je faisais dans mon programme, donc rien de neuf de ce côté là.
2) Après vérification, je n'ai pas de composants Fastnet dans ma version de Builder C++
3) J'ai téléchargé les composants Overbyte ICS, puis je les ai testé.
La connection au serveur Smtp semble se faire avec un SmtpCli (SSL non nécessaire), mais j'ai un nouveau message d'erreur.
Après vérification auprès de notre hébergeur, il semble que l'authentification ne se fasse pas (port 587 utilisé)
J'ai pourtant bien affecté successivement les valeurs SmtpAuthlogin, ou SmtpAuthPlain à la propriété AuthType du SmtpCli, mais rien n'y fait ??????