smtp???????
smtp???????
Bonjours à tous,
j'ais récuperer quelques exemples de "PureSMTP"de Mister gnozal, que je saluts d'ailleur!, mais ça ne fonctionne pas du tout et pourtant je possède la version 4 de PB!!!!,, je commence à croire qu'envoyer un mail avec VBS "CDO.Message"c'est plus simple , alors si vous possédez des exemples qui fonctionnent, je serais ravis d'en prendre connaissance !!,merci à vous
j'ais récuperer quelques exemples de "PureSMTP"de Mister gnozal, que je saluts d'ailleur!, mais ça ne fonctionne pas du tout et pourtant je possède la version 4 de PB!!!!,, je commence à croire qu'envoyer un mail avec VBS "CDO.Message"c'est plus simple , alors si vous possédez des exemples qui fonctionnent, je serais ravis d'en prendre connaissance !!,merci à vous
Re: smtp???????
Les exemples sont fournis avec la lib ...Fortix a écrit :Bonjours à tous,
j'ais récuperer quelques exemples de "PureSMTP"de Mister gnozal, que je saluts d'ailleur!, mais ça ne fonctionne pas du tout et pourtant je possède la version 4 de PB!!!!,, je commence à croire qu'envoyer un mail avec VBS "CDO.Message"c'est plus simple , alors si vous possédez des exemples qui fonctionnent, je serais ravis d'en prendre connaissance !!,merci à vous
Remarque : il y a une lib pour PB3.94 et une lib pour PB4.0x (elles sont incompatibles).
Un exemple de code (de %pb%\Examples\PureSMTP ...) :
Code : Tout sélectionner
;
; PureSMTP library test file AUTHENTICATION
;
MySMTPServer.s = "MySMTPServer"
MySMTPPort.l = 25
If PureSMTP_OpenSMTPConnection(MySMTPServer, MySMTPPort) = #PureSMTP_Ok
Debug PureSMTP_GetLastServerMessage()
MailTo.s = "MyName@MyServer"
MailFrom.s = "PureSMTP@testing"
Subject.s = "Test (with login authentication)"
MsgBody.s = "Testing PureSMTP"
Attachments.s = ""
UserName.s = "TEST"
Password.s = "TEST"
; sending mail
Status.l = PureSMTP_SendMail(MailTo, MailFrom, Subject, MsgBody, Attachments, UserName, Password)
If Status = #PureSMTP_Ok
Debug "Message : sent"
Debug "Status = " + Str(Status)
Else
Debug "Message : something went wrong !"
Debug "Status = " + Str(Status)
Debug PureSMTP_GetLastServerMessage()
EndIf
PureSMTP_CloseSMTPConnection()
Else
Debug "OpenSMTPConnection failed"
Debug PureSMTP_GetLastServerMessage()
EndIf
En fait je me suis mal exprimé, ce que je voulais dir plutôt: la fonction fonctionne correctement mais lors de l'envoit il y a un bloquage au niveau du serveur (quelques soit le serveur smtp ciblé !), je m'excuse gnozal !, et
de mon côté je prendrais des cours pour apprendre à m'exprimer, c'est promis juré!!
de mon côté je prendrais des cours pour apprendre à m'exprimer, c'est promis juré!!
un truc tout bête , essaye de mettre dans "mailfrom" un email valide
comme par exemple "bob.leponge@wanadoo.fr"
@++
comme par exemple "bob.leponge@wanadoo.fr"
@++
pour envoyer un mail, oui : le protocole SMTP fonctionne grâce à des commandes textuelles envoyées au serveur SMTP.Fortix a écrit :Mais doit on obligatoirement indiquer un serveur smtp??,
http://www.commentcamarche.net/internet/smtp.php3
Salut Gnozal et les autres j'ais parfaitement bien compris le fonctionnement d'un serveur smtp mais je n'arrive pas à déceler l'erreur qui se trouve dans mon code qui est encore au stade expérimental:
si vous pouvez trouver l'erreur alors n'hésiter pas à rectifier ce dernier
ainsi je pourrais passer à autre chose
soit c'est une erreur de format de texte, soit c'est une erreur causé par une pièce jointe!!!!, merci à tous
Code : Tout sélectionner
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#_String_SMTP
#_String_Expediteur
#_String_Destinataire
#_String_Objet
#_Text_0
#_Text_1
#_Text_2
#_Text_3
#_Text_4
#_Editor_0
#_Piece_Jointe
#_Envoyer
EndEnumeration
SMTP_Port =25
; utilisateur_$ ="anonyme"
; pass_$ ="anonyme"
Procedure Open_Window_0()
If OpenWindow(#Window_0, 385, 116, 380, 443, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
TextGadget(#_Text_0, 5, 10, 45, 20, "SMTP")
StringGadget(#_String_SMTP, 55, 5, 145, 25, "smtp.caramail.com")
TextGadget(#_Text_1, 5, 70, 370, 25, "Expediteur", #PB_Text_Center)
StringGadget(#_String_Expediteur, 110, 100, 165, 25, "artnax@yahoo.fr")
TextGadget(#_Text_2, 5, 140, 370, 25, "Destinataire", #PB_Text_Center)
StringGadget(#_String_Destinataire, 110, 170, 165, 25, "vunder@caramail.com")
TextGadget(#_Text_3, 5, 210, 370, 25, "Objet", #PB_Text_Center)
StringGadget(#_String_Objet, 110, 240, 165, 25, "1er Test00")
TextGadget(#_Text_4, 5, 280, 370, 25, "Message", #PB_Text_Center)
EditorGadget(#_Editor_0, 5, 310, 325, 100)
ButtonGadget(#_Piece_Jointe, 335, 310, 40, 25, "PJ")
ButtonGadget(#_Envoyer, 235, 415, 95, 25, "Envoyer")
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #_Piece_Jointe
PJ_$ = OpenFileRequester("Recherche Fichier",PJ_$, "Tous les fichiers (*.*)|*.*",0)
Case #_Envoyer
SMTP_Serveur_$ = GetGadgetText(#_String_SMTP)
If PureSMTP_OpenSMTPConnection(SMTP_Serveur_$ , SMTP_Port) = #PureSMTP_Ok
MessageRequester("Info",PureSMTP_GetLastServerMessage())
Mail_Expediteur_$ = GetGadgetText(#_String_Expediteur)
Mail_Destinataire_$ = GetGadgetText(#_String_Destinataire)
Objet_$ = GetGadgetText(#_String_Objet)
Message_$ = GetGadgetText(#_Editor_0)
;Status = PureSMTP_SendMail(Mail_Destinataire_$, Mail_Expediteur_$, Objet_$, Message_$,"",utilisateur_$,pass_$)
Status = PureSMTP_SendMail(Mail_Destinataire_$, Mail_Expediteur_$, Objet_$, Message_$, PJ_$)
;Debug PureSMTP_SetXMailer("Mr X")
If Status = #PureSMTP_Ok
MessageRequester("Info","Message : send ;"+Chr(13)+"Status = " + Str(Status))
Else
MessageRequester("Info","Message : Erreur !;"+Chr(13)+"Status = " + Str(Status)+" ;"+Chr(13)+PureSMTP_GetLastServerMessage())
EndIf
PureSMTP_CloseSMTPConnection()
Else
MessageRequester("Info","OpenSMTPConnection failed ;"+Chr(13)+PureSMTP_GetLastServerMessage())
EndIf
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
If PureSMTP_CloseSMTPConnection()
MessageRequester("Info","Connection fermée !")
CloseWindow(#Window_0)
End
EndIf
si vous pouvez trouver l'erreur alors n'hésiter pas à rectifier ce dernier
ainsi je pourrais passer à autre chose

soit c'est une erreur de format de texte, soit c'est une erreur causé par une pièce jointe!!!!, merci à tous

Je ne vois pas d'erreur dans ce code (à part l'appel en double de PureSMTP_CloseSMTPConnection() mais ce n'est pas génant).
Si çà ne marche pas, à quel stade (PureSMTP_OpenSMTPConnection() ou PureSMTP_SendMail()) l'erreur a-t-elle lieu et quel est la valeur de PureSMTP_GetLastServerMessage() ?
S'il n'y a pas d'erreur signalée, quel est le problème ?
Si le message ne passe pas, il est peut-être arrêté par un filtre spam ?
Si çà ne marche pas, à quel stade (PureSMTP_OpenSMTPConnection() ou PureSMTP_SendMail()) l'erreur a-t-elle lieu et quel est la valeur de PureSMTP_GetLastServerMessage() ?
S'il n'y a pas d'erreur signalée, quel est le problème ?
Si le message ne passe pas, il est peut-être arrêté par un filtre spam ?
Ba quant je m'auto envoit des emails pour effectuer des tests je ne reçois
absolument rien quelques soit le compte
et pourtant GetlastServerMessage m'indique statut=1 donc à priori il ne devrait y avoir de problème
,
et en ce qui concerne MSN tu as bien raison, il y a effectivement un filtre spam, à propos,y aurait il une solution pour contourner ce filtre?,
j'ais penser qu'il fallait tous simplement masquer l'expediteur puisque même en indiquant un expediteur valide c'est concideré comme un spam,(c'est domage car ce n'est pas du tous mon intention!!) ?
Merci Mr Gnozal
absolument rien quelques soit le compte
et pourtant GetlastServerMessage m'indique statut=1 donc à priori il ne devrait y avoir de problème

et en ce qui concerne MSN tu as bien raison, il y a effectivement un filtre spam, à propos,y aurait il une solution pour contourner ce filtre?,
j'ais penser qu'il fallait tous simplement masquer l'expediteur puisque même en indiquant un expediteur valide c'est concideré comme un spam,(c'est domage car ce n'est pas du tous mon intention!!) ?
Merci Mr Gnozal

Ton code fonctionne chez moi (avec d'autres adresses serveur/mail), donc je dirais c'est un problème de serveur.Fortix a écrit :Ba quant je m'auto envoit des emails pour effectuer des tests je ne reçois absolument rien quelques soit le compte
Certains serveurs comme gmail.com utilisent le SSL : ceci n'est pas supporté par PureSMTP.
Ou alors les serveurs SMTP de Caramail sont anti-relay, c'est à dire qu'ils n'acceptent de relayer des courriers que depuis des serveurs bien définis (les leurs, utilisés par leur webmail) ?
PureSMTP_GetLastServerMessage() retourne une chaîne, pas un chiffre.Fortix a écrit :et pourtant GetlastServerMessage m'indique statut=1 donc à priori il ne devrait y avoir de problème
Les filtres spam vérifient énormément de choses en plus de l'expéditeur comme certaines caractéristiques du message : X-Mailer et autres lignes de l'en-tête du message.Fortix a écrit :et en ce qui concerne MSN tu as bien raison, il y a effectivement un filtre spam, à propos,y aurait il une solution pour contourner ce filtre?,
Enfin, certains filtres éliminent les serveurs SMTP publics.
Pour le cas de MSN j'ais récuperé le text exacte en résultat de GetlastserverMessage:
mais j'ai parfaitement saisi tes explications je tenais juste à te montrer
le fameux message "plutôt étrange d'ailleur!!!!" en fait je ne suis pas très fort en Anglais, je suis plus Italien
Code : Tout sélectionner
220 bay0-mc12-f21.bay0.hotmail.com Sending unsolicited commercial or bulk e-mail to Microsoft's computer network is prohibited. Other restrictions are found at http://privacy.msn.com/Anti-spam/. Violations will result in use of equipment located in California and other states. Wed, 18 Jul 2007 10:24:11 -0700
le fameux message "plutôt étrange d'ailleur!!!!" en fait je ne suis pas très fort en Anglais, je suis plus Italien
