InitNetowork + Versenden von E-Mail's

Anfängerfragen zum Programmieren mit PureBasic.
Oliver1994
Beiträge: 321
Registriert: 15.06.2008 21:52

InitNetowork + Versenden von E-Mail's

Beitrag 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
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Oliver1994
Beiträge: 321
Registriert: 15.06.2008 21:52

Beitrag 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
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag 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
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Beitrag 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) /:->
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Oliver1994
Beiträge: 321
Registriert: 15.06.2008 21:52

Beitrag von Oliver1994 »

okay okay!

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

gruß

JENS
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

GMX benötigt in der Regel Login und Passwort.
Probiers mal mit der Lib 'PureSMTP' von Gnozal:
http://freenet-homepage.de/gnozal/
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Vielleicht hilft Dir das hier weiter, hat mir zumindest sehr geholfen:

http://www.purebasic.fr/german/viewtopic.php?t=1356
Eine Art Query-Planner soll die Ausführung von Map/Reduce-Funktionen in Hadoop stark beschleunigen.
Oliver1994
Beiträge: 321
Registriert: 15.06.2008 21:52

Beitrag 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
Antworten