Seite 1 von 2

InitNetowork + Versenden von E-Mail's

Verfasst: 13.12.2008 21:01
von Oliver1994
Hallo,

ich haben mir mal den Code aus PureArea.net zum Versenden von E-Mails geklaut und versucht damit Mails zu Versenden!

Leider möchte er das InitNetwork nicht!

Hier ein auszug des Codes:

Code: Alles auswählen

Procedure.l SendEMail(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 
Fehlermeldung:

Code: Alles auswählen

InitNetwork can be called only once!
Was mache ich Falsch?

Danke für eure Antworten

Gruß

JENS

Verfasst: 13.12.2008 21:50
von AND51
Schon mal versucht, die Fehlermeldung ins Deutsche zu übersetzen? Soll in Fällen wie diesem Wunder wirken...

In der 8. Klasse müsste man die Vokabel "once" in Englisch schon gehabt haben: "einmalig", "einmal" zu deutsch. Lässt darauf schließen, dass du den Befehl mehr als 1 Mal aufrufst. Und das ist falsch. Der Befehl muss nur 1x am Anfang des Programms aufgerufen werden. Das genügt. Und nicht jedes Mal beim Aufruf deiner Prozedur.

Verfasst: 13.12.2008 22:11
von Oliver1994
ja ich kann englisch und genauso habe ich die fehlermeldung auch interprtiert!

Aber ich fand es unlogisch!

Warum sollte man nicht in JEDER PRODUCE initnetwork() aufrufen!

kann sein das eine Produce mal nicht benutz wird!

Gruß

JENS

Verfasst: 13.12.2008 22:29
von PMV
Schon mal versucht, den Befehl außerhalb einer Prozedur auf zu
rufen? :? ... oder mach dir ne Init-Prozedur, in der du alles initialisierst,
oder oder oder. :wink:

Unlogisch ist etwas mehr mals initialisieren zu wollen. Du generierst auch
keine Variable 3 mal ... obwohl du nur 1 brauchst. <)

MFG PMV

Verfasst: 13.12.2008 22:31
von Kaeru Gaman
Oliver1994 hat geschrieben:ja ich kann englisch und genauso habe ich die fehlermeldung auch interprtiert!

Aber ich fand es unlogisch!

Warum sollte man nicht in JEDER PRODUCE initnetwork() aufrufen!

kann sein das eine Produce mal nicht benutz wird!

Gruß

JENS
:lol:

wenn dir der Compiler sagt, nur einmal, dann machstes nur Einmal!

dazu hat der Code oben nen Anfang und ne Zeile Eins, und steht nicht auf der Lauffläche eines Autoreifens.

Verfasst: 14.12.2008 02:32
von KatSeiko
> Aber ich fand es unlogisch!
Das sagt meine Freundin auch immer. Ich ahne Schlimmes... Oliver ist unter Umständen eine Olivia! :o

InitWasauchimmer() hat in einer Procedure nichts zu suchen. Das kommt entweder direkt am Anfang des Programms oder nie. (Auszug aus "Regeln aller Programmiersprachen", Kapitel 1, Einleitung) /:->

Verfasst: 14.12.2008 13:23
von Oliver1994
okay okay!

aber es funzt trotzdem nicht! habe meinen acount bei gmx!

gruß

JENS

Verfasst: 14.12.2008 13:57
von Thorsten1867
GMX benötigt in der Regel Login und Passwort.
Probiers mal mit der Lib 'PureSMTP' von Gnozal:
http://freenet-homepage.de/gnozal/

Verfasst: 14.12.2008 14:57
von THEEX
Vielleicht hilft Dir das hier weiter, hat mir zumindest sehr geholfen:

http://www.purebasic.fr/german/viewtopic.php?t=1356

Verfasst: 14.12.2008 15:50
von Oliver1994
Danke!

ICh denke die Pure Lib geht nicht weil mein Ziel ist es eine DLL zu erstellen!

Und der Code von Thexx

Meint das Attachments is not a function ....

Gruß

JENS