Voici la source complete qui envoie un email juste après l'identification au pop3
Code : Tout sélectionner
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=983&highlight=
; Author: stbi
; Date: 12. May 2003
; * Problem: Server kontaktieren, die auch eine Authentifizierung benötigen (wie GMX), d.h. man
; muss erst Post holen, um Post versenden zu können.
; * Ziel: Auch bei diesen Servern Post versenden OHNE vorher Post holen zu müssen.
; * Lösung: Der SendMail Code wurde um die Funktion popbeforesmtp erweitert. Die Parameter wurden
; logischerweise um das Passwort erweitert, außerdem noch um den Namen des POP3-Servers, da
; dieser nicht immer gleich heißt wie der SMTP-Server (bei GMX isses aber gleich). Frohes Mailen!
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
Procedure.l popbeforesmtp(pop3server.s,mailuser.s,mailpass.s)
If InitNetwork()
ConnID = OpenNetworkConnection(pop3server,110)
If ConnID
wait()
error=0
If res="+OK"
send("user "+mailuser+cr)
wait()
If res="+OK"
Delay(100)
send("pass "+mailpass+cr)
wait()
If res="+OK"
Delay(100)
send("QUIT"+cr)
wait()
ProcedureReturn 1
EndIf
EndIf
EndIf
CloseNetworkConnection(ConnID)
EndIf
EndIf
EndProcedure
;==============================
;-Enter Appropriate Information
mailserver.s="mail.gmx.de"
pop3server.s="mail.gmx.de"
mailto.s="empfaenger@domain.de"
mailfrom.s="absender@gmx.de"
mailpass.s="geheim"
subject.s="nur ein Test"
If popbeforesmtp(pop3server,mailfrom,mailpass)
MessageRequester("Done","Pop-Before-SMTP Successfully!",0)
Else
MessageRequester("Error","Error Pop-Before-SMTP.",#MB_ICONERROR)
EndIf
If sendmail(mailserver,mailto,mailfrom,subject,"This is a test message!"+cr+"What do you think?")
MessageRequester("Done","Mail Sent Successfully!",0)
Else
MessageRequester("Error","Error Sending Mail.",#MB_ICONERROR)
EndIf
End
; ExecutableFormat=Windows
; FirstLine=1
; EOF