Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++ > C++Builder
C++Builder Environnement de développement RAD C++Builder. Avant de poster -> F.A.Q C++Builder, Sources C++Builder
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/01/2013, 22h44   #1
Xavier
Membre du Club
 
Inscription : mai 2002
Messages : 173
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 173
Points : 57
Points : 57
Par défaut Comment utiliser IdSMTP pour envoyer un message

Bonjour,
j'ai pris un bout de code sur le net afin d'envoyer un message e-mail.
Le compilation est OK sous CBuilder2010, mais il se bloque lors de IdSMTP1->Connect(): erreur: "unkown[123.118.112.22]: Client Host rejected: Acces denied"

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
	IdSMTP1->Username = "moi@free.fr";
	IdSMTP1->Password = "motdepassee";
	IdSMTP1->Host = "smtp.free.fr";
	IdSMTP1->Port = 25;
 
	try
		{
		IdSMTP1->Connect();
		IdSMTP1->Send(IdMessage1);
		IdSMTP1->Disconnect();
		}
	catch(Exception &e)
		{
		ShowMessage(e.Message);
		}
Merci par avance
Cordialement
Xavier
Xavier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 13h10   #2
yarp
Membre confirmé
 
Inscription : janvier 2003
Messages : 273
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2003
Messages : 273
Points : 272
Points : 272
C'est devenu compliqué d'envoyer un mail (à cause des spams), les protocoles de connexion évoluent sans cesse vers plus de sécurisation et donc les classes sont rapidement obsolètes.
Les protocoles récents demandent une connexion SSL ou TLS (ne me demande pas ce que c'est je répète comme un peroquet) et donc si l'objet idSMTP ne les implémente pas ce n'est pas surprenant que la connexion échoue.

Une classe récente:
http://www.codeproject.com/Articles/...t-with-SSL-TLS

PJ Naughter a également une classe SMTP qu'il maintient régulièrement (je recommande ses composants):
http://www.naughter.com/smtp.html

L'inconvénient des 2 solutions ci-dessus par rapport à la VCL est qu'il va falloir coder. Mais une fois ce droit d'entrée acquis, c'est plutôt plus confortable à utiliser. Personnellement je n'utilise la VCL que pour les objets graphiques pour le reste je préfère ce genre de solutions.
yarp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 13h51   #3
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 189
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 189
Points : 13 238
Points : 13 238
Pour que Username et Password soit pris en compte, ajoute cette ligne

Code :
IdSMTP1->AuthType = satDefault;

Pour le SSL, Indy fourni tout le nécessaire
Même si je pense que Free ne l'exige pas !

Code :
1
2
     IdSMTP1->IOHandler = new TIdSSLIOHandlerSocketOpenSSL(); // ne pas oublier de libérer
     IdSMTP1->UseTLS = utUseRequireTLS;
Pense à fournir aussi une adresse email dans TIdMessage->From->Address peut accélérer le routage du mail, d'ailleurs certains serveurs SMTP vérifie la validé de cette adresse, un serveur invalide provoquera une exception, un compte invalide pourrait nuire à l'émission (protection usurpation d'identité) ou à la réception (Anti-virus, anti-spam et anti-fishing pouvant neutraliser le mail)
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !

L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2013, 00h50   #4
Xavier
Membre du Club
 
Inscription : mai 2002
Messages : 173
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 173
Points : 57
Points : 57
Merci tous les 2.
En réalité, les codes marchent. Quand j'ai fait ma première teste sur la messagerie FREE, cela ne marchait pas. En effet, je suis à l'étranger, et le site FREE doit être affecté par un parefeu. Maintenant, j'utilise une messagerie locale, tout va bien.

Ma nouvelle question: comment utiliser IdSMTP pour consulter une messagerie?
Merci d'avance
Xavier
Xavier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2013, 11h02   #5
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 189
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 189
Points : 13 238
Points : 13 238
Tu ne peux pas avec SMTP = Simple Mail Transfer Protocol
Il te faut utilise POP3 = Post Office Protocol Version 3 -> TIdPOP3
ou IMAP = Internet Message Access Protocol -> TIdIMAP4
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !

L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2013, 13h01   #6
Xavier
Membre du Club
 
Inscription : mai 2002
Messages : 173
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 173
Points : 57
Points : 57
Merci ShaiLeTroll, je vais faire du progrès sur les deux composants et je ferais un retour plus tard.
A+
Xavier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h41.


 
 
 
 
Partenaires

Hébergement Web