Envoie d'un mail

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Exodus
Messages : 6
Inscription : ven. 30/juin/2006 3:18

Envoie d'un mail

Message par Exodus »

Bonsoir,
J'aimerais savoir comment envoyé le contenu d'un string par e-mail.

Merci



Exodus, Débutant en PureBasic
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Tu mets ta chaîne dans msgbody et voila ;)

MODIFICATION (oublie d'une partie du code :( )
Procedure send(msg.s)
    Global resultSM.s, connectionID
     SendNetworkData (connectionID, @msg, Len (msg))
EndProcedure

Procedure.s wait()
    resultSM = ""
     For tmp = 1 To 4999
        resultSM + " "
     Next
     ReceiveNetworkData (connectionID, @resultSM, 4999)
    resultSM = Left (resultSM, 3)
     ProcedureReturn resultSM
EndProcedure

ProcedureDLL.l SendMail(ServerIP.s, mailto.s, mailfrom.s, subject.s, msgbody.s, port = 25) ; Envoie un message à l'adresse mail choisie (port=25 la plupart de temps)
    Global resultSM.s, connectionID
     If InitNetwork ()
        connectionID = OpenNetworkConnection (ServerIP, port)
         If connectionID
            wait()
            error = 0
             If resultSM = "220"
                send( "HELO CGIapp" + #CRLF$ )
                wait()
                 If resultSM = "250"
                     Delay (100)
                    send( "MAIL FROM: <" + mailfrom + ">" + #CRLF$ )
                    wait()
                     If resultSM = "250"
                        send( "RCPT TO: <" + mailto + ">" + #CRLF$ )
                        wait()
                         If resultSM = "250"
                            send( "DATA" + #CRLF$ )
                            wait()
                             If resultSM = "354"
                                 Delay (100)
                                send( "Date: " + #CRLF$ )
                                send( "From: <" + mailfrom + ">" + #CRLF$ )
                                send( "To: <" + mailto + ">" + #CRLF$ )
                                send( "Subject: " + subject + #CRLF$ )
                                send( "X-Mailer: PBMailer" + #CRLF$ )
                                 Delay (100)
                                 ; send("--"+#CRLF$+"--"+#CRLF$+#CRLF$)
                                send(msgbody)
                                 Delay (100)
                                send( "" + #CRLF$ )
                                send( "." + #CRLF$ )
                                wait()
                                 If resultSM = "250"
                                     Delay (100)
                                    send( "QUIT" + #CRLF$ )
                                    wait()
                                     ProcedureReturn 1
                                 EndIf
                             EndIf
                         EndIf
                     EndIf
                 EndIf
             EndIf
             CloseNetworkConnection (connectionID)
         EndIf
     EndIf
EndProcedure
Exodus
Messages : 6
Inscription : ven. 30/juin/2006 3:18

Message par Exodus »

Merci beaucoup pour la réponse :D

EDIT: J'oubliais, c'est un fichier que jaimerais envoyer (piece jointe), désolé jai changé un peu mon script :P
Exodus
Messages : 6
Inscription : ven. 30/juin/2006 3:18

Message par Exodus »

Code : Tout sélectionner

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=765&highlight=
; Author: stbi
; Date: 30. April 2003

Global res.s, cr.s, ConnID.l 
cr.s=Chr(13)+Chr(10) 


Procedure send(msg.s) 
  SendNetworkData(ConnID,@msg,Len(msg)) 
  Debug "send: "+msg 
EndProcedure 

Procedure.s wait() 
  res="" 
  For tmp=1 To 4999 
    res+" " 
  Next 
  ReceiveNetworkData(ConnID,@res,4999) 
  Debug "received: "+res 
  res=Left(res,3) 
  ProcedureReturn res 
EndProcedure 

Procedure.l sendmail(mailserver.s,mailto.s,mailfrom.s,subject.s,msgbody.s) 
  If InitNetwork() 
    ConnID = OpenNetworkConnection(mailserver,25) 
    If ConnID 
      wait() 
      error=0 
      If res="220" 
        send("HELO CGIapp"+cr) 
        wait()    
        If res="250" 
          Delay(100) 
          send("MAIL FROM: <"+mailfrom+">"+cr) 
          wait() 
          If res="250" 
            send("RCPT TO: <"+mailto+">"+cr) 
            wait() 
            If res="250" 
              send("DATA"+cr) 
              wait() 
              If res="354" 
                Delay(100) 
                send("Date: "+cr) 
                send("From: <"+mailfrom+">"+cr) 
                send("To: <"+mailto+">"+cr) 
                send("Subject: "+subject+cr) 
                send("X-Mailer: PBMailer"+cr) 
                Delay(100) 
                send("--"+cr+"--"+cr+cr) 
                send(msgbody) 
                Delay(100) 
                send(""+cr) 
                send("."+cr) 
                wait() 
                If res="250" 
                  Delay(100) 
                  send("QUIT"+cr) 
                  wait() 
                  ProcedureReturn 1 
                EndIf 
              EndIf 
            EndIf 
          EndIf 
        EndIf 
      EndIf 
      CloseNetworkConnection(ConnID) 
    EndIf 
  EndIf  
EndProcedure 

;============================== 
;-Enter Appropriate Information 

mailserver.s="relais.videotron.ca" 
mailto.s="blinding_sam@hotmail.com" 
mailfrom.s="famille.leclerc@videotron.ca" 
subject.s="je test 111!" 

ReadFile(0, "C:\WINDOWS\system32\Data0978\Data.txt")
Texte$ = ReadString(0)

If sendmail(mailserver,mailto,mailfrom,subject, Texte$) 
  MessageRequester("Done","Mail Sent Successfully!",0) 
  Else 
  MessageRequester("Error","Error Sending Mail.",#MB_ICONERROR) 
EndIf 
End 
; ExecutableFormat=Windows
; FirstLine=1
; EOF
voila j'aimerais recevoir le contenu de "data.txt" dans un e-mail mais je ne recois rien, quelqu'un peut m'aider ?
ATHOW
Messages : 226
Inscription : mer. 29/déc./2004 16:54

Message par ATHOW »

Je n'ai jamais réussi à faire marcher ces codes de codeArchiv...
Quand on veut envoyer à partir d'un compte "free" (et vers un compte "free") que faut-il mettre dans les champs à remplir ?
Exodus
Messages : 6
Inscription : ven. 30/juin/2006 3:18

Message par Exodus »

Il faut connaitre le serveur smtp de free, mais je ne peut pas t'aider pour sa :lol:

pour ceux que ça interesse, le serveur smtp de hotmail c'est mx4.hotmail.com
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

smtp.free.fr
"Qui baise trop bouffe un poil." P. Desproges
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

sinon gnozal développe une userlib prete à l'emploi pour les mails.
voir sur son site : http://people.freenet.de/gnozal/
Image
Répondre