Pb d'email a lenvoi

Résolu
cs_ssd Messages postés 50 Date d'inscription dimanche 1 juin 2003 Statut Membre Dernière intervention 31 août 2011 - 4 sept. 2005 à 23:11
 Utilisateur anonyme - 6 sept. 2005 à 01:31
Voila mon code lors de l'execution, pour l'envoi et il me donne une erreur
juste apres la connection cf §§ dans le code.
Pouvez vous m'aider

procedure TForm1.Button3Click(Sender: TObject);
var
res: bool;
adr, h: string;
i: integer;
heure: TDateTime;

label fin, suite;

begin
//.... code divers
smtp.AuthType:=atdefault;
SMTP.Host := edit4.Text;
SMTP.Port := StrToInt(edit7.Text);
SMTP.username:=edit8.text;
SMTP.password:=edit9.text;

listbox1.Items.Add(TimeToStr(Now)+' '+DateToStr(Now)+' Connection au serveur ... : '+edit4.Text);
Try
SMTP.Connect('5000');//connexion immediate au serveur


§§ lerreur a lieu juste ici soit il m'affiche l'exception soit une retour du
serveur socket error, connection refused §§



except
listbox1.Items.Add(TimeToStr(Now)+' '+DateToStr(Now) +' Impossible d''acceder au serveur smtp. Veuillez retenter plus tard.');
listbox1.Items.Add(' -µ- ');
button3.Enabled:=true;
exit;
end;
With MSG do //on evite d'avoir a nommer a chaque fois le composant
begin
Body.Assign(memo1.Lines); //corps du message
From.Text := edit5.text; //Mail de l'envoyeur
Recipients.EMailAddresses := edit1.Text; //le mail du destinataire
Subject := edit3.Text; //Le sujet
Priority := TIdMessagePriority(2); //la priorité du message
CCList.EMailAddresses := ''; //liste CC
BccList.EMailAddresses := ''; //liste BB
sleep(500);
listbox1.Items.Add('Départ du Mess. à : '+TimeToStr(Now)+' Heure');
listbox1.Items.Add('A : '+edit1.Text);
listbox1.Items.Add('De : '+edit2.Text);
listbox1.Items.Add('Sujet : '+edit3.Text);
try
SMTP.Send(MSG);
except
Showmessage(TimeToStr(Now)+' '+DateToStr(Now)+' Erreur lors de l''envoi du message');
listbox1.Items.Add(TimeToStr(Now)+' '+DateToStr(Now)+' Erreur lors de l''envoi du message: Il est possible que votre SMTP ne reponde pas');
listbox1.Items.Add(' -µ- ');
res:=false;
button3.Enabled:=true;
end;
end;

if res=True then begin
showmessage(TimeToStr(Now)+' '+DateToStr(Now)+' Envoi effectué!');
listbox1.Items.Add('Envoie réussi à : '+TimeToStr(Now)+' Heure');
end
else
goto fin;
fin: //si on rencontre une erreur, la fonction se termine
end;

//... fin du code
A voir également:

19 réponses

Utilisateur anonyme
6 sept. 2005 à 01:31
Maintenant je veux pas etre trop dur mais au niveau des noms utilisés pour les variables ils sont assez indigestes à lire. Ce qui donne un style complexe à la source.
3
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
4 sept. 2005 à 23:45
Essaye de remplacer :

SMTP.Connect('5000');

par

SMTP.Connect();



Cela laisse plus de temps au serveur pour réagir à la demande de connexion...


PS : sur quel serveur SMTP essayes-tu de te connecter ?


@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
cs_ssd Messages postés 50 Date d'inscription dimanche 1 juin 2003 Statut Membre Dernière intervention 31 août 2011
4 sept. 2005 à 23:50
j'ai essaye comme tu la dis c le meme pb. mon serveur est free !
si tu en as un autre je t'ecoute
Merci Bien
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
4 sept. 2005 à 23:53
Est-ce que free est également ton FAI ?

@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ssd Messages postés 50 Date d'inscription dimanche 1 juin 2003 Statut Membre Dernière intervention 31 août 2011
4 sept. 2005 à 23:54
non free n'est pas mon fai mais j'ai un compte
as ton avis ou est le pb ?
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
5 sept. 2005 à 00:00
c'est justement le problème... Si tu essayes de te connecter à partir
de ton prog au serveur SMTP de free alors que free n'est pas ton FAI,
il va refuser la connexion... J'ai déjà essayé avec un de mes comptes
de messagerie qui est à free et je n'y suis jamais arrivé...



Si quelqu'un a la solution... je suis preneur !


@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">


N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !

0
Utilisateur anonyme
5 sept. 2005 à 00:21
Ce n'est pas spécifique à FREE c'est vrai quelque soit la nature de ton mail. Tu peux te creer un compte caramail hotmail laposte ect ect, tu auras tjs le meem probleme. Je te conseil de faire un tour sur Google et de chercher ce qu'est un SMTP. Tu comprenda ton erreur. Par exemple les logiciels qui te permettent d'envoyer un mail beugent tous si tu utilisent pas le SMTP de ton FAI.

Je te souligne que ce n'est pas parce que tu utilise un FAI par exemple celui de wanadoo que tu ne peux pas utiliser une adresse mail de free.

SMTP.wanadoo.fr avec ssd@free.fr ca va marcher.

Bonne programmation.
0
Utilisateur anonyme
5 sept. 2005 à 00:28
Honnetement je trouve ta source bien compliquée et bizarre pour envoyer un mail. Il existe des méthodes bien plus simple. Je me pose des questions sur la nature de ton prog. Je rappelle que le SPAM est un délit punis par la loi.

Pour répondre une fois de plus à ta question : "il est possible que ton SMTP ne répond pas". On te dit TON smtp.
0
Utilisateur anonyme
5 sept. 2005 à 00:41
Si tu utilises indy tu dois ajouter id pour hote port ect ect. Ensuite tu dois faire idSMTP.connect; Et si tu définis le port 5000 alors qu'avant tu en définis un autre c'est normal que ca beugue.
0
Utilisateur anonyme
5 sept. 2005 à 01:07
Ah pour wanadoo je te pécise que cela marche si wanadoo est ton FAI. DOnc regarde sur google : smtp+nom de ton FAI et tu va obtenir ton bonheur si tu connais pas celui de ton FAI. Fais un essai car il y a des réponses parfois dépassées (les FAI changent parfois de SMTP).

wanadoo : smtp.wanadoo.fr
aol : smtp.aol.com
free :smtp.free.fr
club-internet :smtp.club-internet.fr

Je crois que ses SMTP sont corrects (je n'ai pas vérifié). Mais attention au bon port (POP3 est parfois utilisé plutot que le port25) a toi de chercher. Si tu veux que ton SMTP soit une variable il faudrait mieux associer un port à celui ci a partir d'une liste prédéfini genre :

if smtp=..... then port=.......
if smtp=...... then port=......

Ca t'évitera de tout parametrer de facon inutile (car pour un SMTP tu as qu'un port possible)
0
cs_ssd Messages postés 50 Date d'inscription dimanche 1 juin 2003 Statut Membre Dernière intervention 31 août 2011
5 sept. 2005 à 07:46
le but de mon prog n'est pas n'est pas de spam, mais d'envoye un email de donnée par un programme tierce qui decrit un probleme ou un journal, c'est pour cela que j'utilise un nom d'expediteur different que celui de la boite.
Merci je ais voir ce que je peux faire avec.
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
5 sept. 2005 à 12:12
J'ai noté de multiples erreurs dans les messages du dessus :



Francky23012301 :

"Honnetement je trouve ta source bien compliquée et bizarre pour envoyer
un mail. Il existe des méthodes bien plus simple." > Je ne vois pas en quoi ce code est compliqué : pourrais tu préciser ta remarque (qu'est-ce qui te semble en trop) ?



"Si tu utilises indy tu dois ajouter id pour hote port ect ect. Ensuite tu dois faire idSMTP.connect;" > Non. Si le composant TIdSTMP utilisé a été nommé 'SMTP', on doit y accéder par son nom 'SMTP' et pas pas le nom de base donné au composant lors de son ajout 'IdSMTP1'. Dans le cas contraire, cela provoquerait une erreur, car le compilateur ne saurait pas de quel composant on parle !



"Et si tu définis le port 5000 alors qu'avant tu en définis un autre c'est normal que ca beugue." > Attention ! Le 5000 dans SMTP(5000); ne désigne pas le port, mais le TimeOut de connexion...





Liste des adresses de serveurs :

http://www.commentcamarche.net/faq/sujet-893-%5BMessagerie%5D-Adresses-serveurs-POP-ET-SMTP


@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
cs_ssd Messages postés 50 Date d'inscription dimanche 1 juin 2003 Statut Membre Dernière intervention 31 août 2011
5 sept. 2005 à 12:26
peux tu etre plus explicite sur le id hote , je ne suis qu'un debutant merci de ton aide
Merci
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
5 sept. 2005 à 12:53
c'est à dire ?

@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
cs_ssd Messages postés 50 Date d'inscription dimanche 1 juin 2003 Statut Membre Dernière intervention 31 août 2011
5 sept. 2005 à 13:18
"Et si tu définis le port 5000 alors qu'avant tu en définis un autre c'est normal que ca beugue." > Attention ! Le 5000 dans SMTP(5000); ne désigne pas le port, mais le TimeOut de connexion...

Quelle est le code pour la connection et l'envoi du :message ?
Merci
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
5 sept. 2005 à 13:28
Désolé, j'avais fait une erreur : Il ne fallait pas lire SMTP(5000), mais SMTP.Connect(5000) ...



Sinon, voici le code (c'est le même que le tien en fait, mais je n'ai mis que la structure):



with SMTP do

begin

AuthType:= atdefault;

Host := edit4.Text;

Port := StrToInt(edit7.Text);

username:=edit8.text;

password:=edit9.text;

end;



with MSG do


begin


Body.Assign(memo1.Lines);


From.Text : = edit5.text;


Recipients.EMailAddresses := edit1.Text;


Subject := edit3.Text;


Priority := TIdMessagePriority(2);


CCList.EMailAddresses := '';


BccList.EMailAddresses := '';


end ;



try

SMTP.Connect;

except

ShowMessage('erreur de connexion');

exit;

end;



try

SMTP.Send(MSG);

except

ShowMessage('erreur d'envoi');

SMTP.Disconnect;

exit;

end;


@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size ="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
cs_ssd Messages postés 50 Date d'inscription dimanche 1 juin 2003 Statut Membre Dernière intervention 31 août 2011
5 sept. 2005 à 13:46
je te remercie mais j'ais toujours le probleme de connexion au serveur et donc impossible d'envoye, est ce que cela est du que free n'est pas mon FAI?
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
5 sept. 2005 à 16:11
oui.

@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
Utilisateur anonyme
6 sept. 2005 à 01:28
Bon salut à tous

Ni69 je vais revenir sur ce que j'ai dis :

*SSD n'avait pas expliqué son projet. Donc dans l'hypothèse d'envoyer un simple mail, il est possible de faire un programme plus court et donc plus simple. Maintenant en connaissant un peu plus son projet on peut comprendre.

*Maintenantl'ajout de id est obligatoire si tu as pas fais de redéfinition. Honnettement je pensais que ce cher SSD avait simplement repompée une source. Donc si il avait pas rédifinit les composants bah oui ca aurait beugués.

*Maintenant le timeout je ne connaissais pas. Donc je fais mon méaculpa. Mais j'affirme que c'était ma seule erreur.

Maintenant je répète quelque soit l'adresse mail que tu utilises tu es obligé d'utiliser l'adresse SMTP de ton FAI. Si tu es client chez wanadoo tu dois utiliser smtp.wanadoo.fr meme si tu veux utiliser comme adresse expeditrice ffsfsdssd@free.fr. C'est je crois obligatoire.
0
Rejoignez-nous