OVH Cloud OVH Cloud

Envoie de mail

2 réponses
Avatar
eon2
Pour envoyer un mail j'utilise le code que j'indique plus bas mais j'ai
plusieurs érreur :
501 Syntax error in parameters or arguments to MAIL command
501 Syntax error in parameters or arguments to RCPT command
503 DATA command outside of MAIL transaction
500 To:c command unrecognized

Elles corespondent à quoi?

Private WithEvents evt As Winsock
Private nextSend As Boolean

Private Sub CmdSend_Click()
Dim tmp As String

Set evt = Ws

Ws.Connect TxtServer, 25
While Ws.State <> sckConnected
DoEvents
Wend
nextSend = False
Ws.SendData "HELO toto" & vbCrLf
While nextSend = False
DoEvents
Wend
nextSend = False
Ws.SendData "MAIL FROM:" & TxtFrom.Text & vbCrLf
While nextSend = False
DoEvents
Wend
nextSend = False
Ws.SendData "RCPT TO:" & TxtTo.Text & vbCrLf
While nextSend = False
DoEvents
Wend
nextSend = False
Ws.SendData "DATA" & vbCrLf
While nextSend = False
DoEvents
Wend

Ws.SendData "To:" & TxtTo.Text & vbCrLf
Ws.SendData "From:" & TxtFrom.Text & vbCrLf
Ws.SendData "Subject:" & TxtSubject.Text & vbCrLf
Ws.SendData TxtMail.Text & vbCrLf
nextSend = False
Ws.SendData vbCrLf & "." & vbCrLf
While nextSend = False
DoEvents
Wend


nextSend = False
Ws.SendData "QUIT" & vbCrLf
While nextSend = False
DoEvents
Wend

Ws.Close
End Sub

----------------------------------------------------------------------------
--------------------------
http://www.aerofusee.fr.fm

2 réponses

Avatar
Jean-Marc
"eon2" a écrit dans le message de
news:c0knse$8b$
Pour envoyer un mail j'utilise le code que j'indique plus bas mais j'ai
plusieurs érreur :
501 Syntax error in parameters or arguments to MAIL command
501 Syntax error in parameters or arguments to RCPT command
503 DATA command outside of MAIL transaction
500 To:c command unrecognized

Elles corespondent à quoi?

Private WithEvents evt As Winsock
Private nextSend As Boolean

Private Sub CmdSend_Click()
Dim tmp As String

Set evt = Ws

Ws.Connect TxtServer, 25
While Ws.State <> sckConnected
DoEvents
Wend
nextSend = False
Ws.SendData "HELO toto" & vbCrLf
While nextSend = False
DoEvents
Wend
nextSend = False
Ws.SendData "MAIL FROM:" & TxtFrom.Text & vbCrLf
While nextSend = False
DoEvents
Wend
nextSend = False
Ws.SendData "RCPT TO:" & TxtTo.Text & vbCrLf
While nextSend = False
DoEvents
Wend
nextSend = False
Ws.SendData "DATA" & vbCrLf
While nextSend = False
DoEvents
Wend

Ws.SendData "To:" & TxtTo.Text & vbCrLf
Ws.SendData "From:" & TxtFrom.Text & vbCrLf
Ws.SendData "Subject:" & TxtSubject.Text & vbCrLf
Ws.SendData TxtMail.Text & vbCrLf
nextSend = False
Ws.SendData vbCrLf & "." & vbCrLf
While nextSend = False
DoEvents
Wend


nextSend = False
Ws.SendData "QUIT" & vbCrLf
While nextSend = False
DoEvents
Wend

Ws.Close
End Sub




Hello,
tout ceci semble correct, pour autant que les TextBox contiennent des choses
valides quand tu fais tourner ton programme.

Je fais ceci fréquemment en VB et je n'ai jamais eu de vrai problème
fonctionnels, hormis les classiques problèmes de mise au point ...

Voici un log d'une session telnet que je viens de faire:

220 december.skynet.be ESMTP Sendmail 8.12.9/8.12.9/Skynet-OUT-2.21; Sat, 14
Feb
2004 10:48:58 +0100; (No UCE/UBE) logging access from:
123-123.123.12.adsl.skyn
et.be(OK)-214-113.240.81.adsl.skynet.be [12.123.123.123]
HELO TOTO
250 december.skynet.be Hello 123-123.123.12.adsl.skynet.be [12.123.123.123],
ple
ased to meet you
MAIL FROM:
250 2.1.0 Sender ok
RCPT TO:
250 2.1.5 Recipient ok
DATA
354 Please start mail input.
CECI EST UN TEST
D ENVOI
DE MESSAGE
.
250 Mail queued for delivery.
QUIT
221 Closing connection. Good bye.

Les erreurs que tu reçois (en fait, seule la première erreur est importante,
les autres sont des erreurs en cascade dues à la première):

501 Syntax error in parameters or arguments to MAIL command



Effectivement, la RFC indique:
501 Erreur de syntaxe dans des paramètres ou arguments

Je te conseille 2 choses:
La première est toute simple, c'est d'envoyer dans une session telnet la
même chose que ce que tu essaies d'envoyer par programme; tu verras alors si
les infos que tu envoies sont reconnues par le serveur ou non.

La seconde, c'est de récupérer par getdata ou équivalent toutes les réponses
du serveur.
Je pense en particulier que tu dois déjà t'assurer de recevoir un code de
retour 250- après ton HELO

Tu peux aussi logger dans un fichier ou avec debug.print le contenu de tes
TextBox avant chaque SendData, ceci te permettra éventuellement de voir que
ce que tu envoies n'est pas exactement ce que tu penses ou qq chose du même
genre.

Jean-Marc
Avatar
>-----Message d'origine-----
Pour envoyer un mail j'utilise le code que j'indique


plus bas mais j'ai
plusieurs érreur :
501 Syntax error in parameters or arguments to MAIL


command
501 Syntax error in parameters or arguments to RCPT


command
503 DATA command outside of MAIL transaction
500 To:c command unrecognized

Elles corespondent à quoi?

Private WithEvents evt As Winsock
Private nextSend As Boolean

Private Sub CmdSend_Click()
Dim tmp As String

Set evt = Ws

Ws.Connect TxtServer, 25
While Ws.State <> sckConnected
DoEvents
Wend
nextSend = False
Ws.SendData "HELO toto" & vbCrLf
While nextSend = False
DoEvents
Wend
nextSend = False
Ws.SendData "MAIL FROM:" & TxtFrom.Text & vbCrLf
While nextSend = False
DoEvents
Wend
nextSend = False
Ws.SendData "RCPT TO:" & TxtTo.Text & vbCrLf
While nextSend = False
DoEvents
Wend
nextSend = False
Ws.SendData "DATA" & vbCrLf
While nextSend = False
DoEvents
Wend

Ws.SendData "To:" & TxtTo.Text & vbCrLf
Ws.SendData "From:" & TxtFrom.Text & vbCrLf
Ws.SendData "Subject:" & TxtSubject.Text & vbCrLf
Ws.SendData TxtMail.Text & vbCrLf
nextSend = False
Ws.SendData vbCrLf & "." & vbCrLf
While nextSend = False
DoEvents
Wend


nextSend = False
Ws.SendData "QUIT" & vbCrLf
While nextSend = False
DoEvents
Wend

Ws.Close
End Sub

---------------------------------------------------------


-------------------
--------------------------
http://www.aerofusee.fr.fm


.