  | 
					
						Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!   
						
						
					 | 
				 
			 
			 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	 
	
	
		| Autor | 
		Nachricht | 
	 
	
		amsel
 
 
  Anmeldungsdatum: 27.02.2005 Beiträge: 3
 
  | 
		
			
				 Verfasst am: 27.02.2005, 20:19    Titel: mail versand auslösen | 
				     | 
			 
			
				
  | 
			 
			
				hallo,   
 
ich habe ein programm geschrieben, wo bei einem bestimmten ereigniss eine mail versand werden soll. 
 
 
ich habe im monster faq die beiden links mir angeschaut. doch der eine geht nicht und das uka_PPP (soweit ich das verstanden habe ist ja dazu da um mails zu holen und zu versenden) oder??    
 
 
könnt ihr mir einen tip geben    
 
 
dankeschön 
 
 
viele grüße amsel _________________ Sei so frei 
 
das es dir egal ist,
 
wie andere über dich denken.
 
Du wirst glücklicher sein, 
 
wenn du dir gefällst. | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		Thomas Antoni
 
  
  Anmeldungsdatum: 12.10.2004 Beiträge: 220 Wohnort: Erlangen
  | 
		
			
				 Verfasst am: 27.02.2005, 20:59    Titel: Dazu habe ich mir für die QB-MonsterFAQ vorgemerkt... | 
				     | 
			 
			
				
  | 
			 
			
				Dazu habe ich mir für die QB-MonsterFAQ vorgemerkt...
 
 
-------------------------------------------------------------------------------------
 
 
Frage deutsch
 
~~~~~~~~~~~~~~~~
 
Wie greift mein Programm auf E-Mail-Funktionen zu?
 
 
Antwort  1
 
~~~~~~~~~~~~~~~~
 
[ von Andreas Meile ( qbasicde@dreael.ch) im QB-Forum, 25.4.2004 ]
 
 
Zum Aufrufen von E-Mail-Funktionen mit Qbasic gibt es u.a. folgende Ansätze:
 
 
 
*** Ansatz 1: mit Sockets.
 
Probiere einmal ein Telnet auf Port 25 Deines Providers machen. Gib dort
 
 
telnet smtp.meinisp.de 25
 
220 smtp.meinisp.de SMTP Sendmail ready.
 
HELO qbasic.de
 
250 Pleased meet you
 
MAIL From: absender@darkangel.de
 
250 Sender ok
 
RCPT To: darkangel@darkangel.de
 
250 Recipient ok
 
DATA
 
354 Enter mail, and end with "." on a line by itself
 
From: "Dark Angel" <absender@darkangel.de>
 
To: darkangel@darkangel.de
 
Subject: Test
 
 
Dies wird direkt mit handerzeugtem SMTP-Protokoll
 
versendet.
 
.
 
250 Message accepted for delievery
 
QUIT
 
221 closing connection
 
 
ein. Dieses einfache Protokoll solltest Du wie unter
 
 
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/InternetMitQuickBASIC.html
 
 
beschrieben umsetzen können. Details siehe RFC 2821, also
 
 
http://www.ietf.org/rfc/rfc2821.txt
 
 
Diese Methode eignet sich in einer reinen MS-DOS 6.22-Umgebung am besten.
 
 
...::: Tipp:
 
SMTP ist ein dialogorientiertes Protokoll, wo man immer die Rückantwort
 
abwarten muss, bevor man zum nächsten Schritt übergeht. Speziell diese
 
-stelligen Codes der Rückmeldungen muss man auswerten. Für weitere Details
 
siehe
 
 
http://www.ietf.org/rfc/rfc2821.txt
 
 
 
*** Ansatz 2: Zuhilfenahme von VBScript und SHELL
 
Falls ein Windows NT Option Pack mit dem SMTP-Dienst drauf ist, solltest Du über 
 
das "CDONTS.NewMail"-Automatisierungsobjekt eine E-Mail scriptgesteuert absetzen 
 
können. Jeder ASP-Programmierer (ASP = Active Server Pages vom Internet 
 
Information Server von Microsoft) kennt dies.
 
 
In QBasic sieht dies etwa wie folgt aus:
 
 
 	  | Code: | 	 		  
 
absender$ = "absender@darkangel.de"
 
empfaenger$ = "darkangel@darkangel.de"
 
betreff$ = "Test"
 
zeile1$ = "Dies ist Inhalt."
 
zeile2$ = "Dies ist noch mehr Inhalt."
 
OPEN ENVIRON$("TEMP") + "\~SENDM.VBS" FOR OUTPUT AS 1
 
PRINT#1, "Set oMail = CreateObject(" + CHR$(34) + "CDONTS.NewMail" + CHR$(34) + ")"
 
PRINT#1, "oMail.From = " + CHR$(34) + absender$ + CHR$(34)
 
PRINT#1, "oMail.To = " + CHR$(34) + empfaenger$
 
PRINT#1, "oMail.Subject = " + CHR$(34) + betreff$ + CHR$(34)
 
PRINT#1, "oMail.Body = " + CHR$(34) + zeile1$ + CHR$(34) + " & vbCrLf & " + CHR$(34) + zeile2$ + CHR$(34)
 
PRINT#1, "oMail.Send"
 
PRINT#1, "Set oMail = Nothing"
 
SHELL "cscript //NoLogo " + ENVIRON$("TEMP") + "\~SENDM.VBS"
 
KILL ENVIRON$("TEMP") + "\~SENDM.VBS"
 
 | 	  
 
 
*** Ansatz 3: Mit einem Kommandozeilen Mail-Client
 
 
Im Shareware-Bereich gibt es mittlerweilen Kommandozeilen-Mail -Clients für 
 
Batchprogrammierer. Besorg Dir einfach einen solchen und ruf ihn über SHELL aus 
 
Deiner QB-Applikation auf!
 
 
Unter
 
 
http://sourceforge.net/projects/blat
 
 
mit Googlen bin ich sogar so etwas im Freewarebereich gerade fündig geworden.
 
 
Diesen musst Du downloaden und installieren, anschliessend wie unter
 
 
http://sourceforge.net/docman/display_doc.php?docid=17202&group_id=81910
 
 
beschrieben einen Aufrufstring in SHELL zusammenbauen:
 
 
 	  | Code: | 	 		  
 
absender$ = "absender@darkangel.de"
 
empfaenger$ = "darkangel@darkangel.de"
 
betreff$ = "Test"
 
smtpserver$ = "smtp.meinisp.de"
 
OPEN ENVIRON$("TEMP") + "\~INHALT.TXT" FOR OUTPUT AS 1
 
PRINT#1, "Hier bitte den"
 
PRINT#1, "Mailbody erstellen!"
 
CLOSE 1
 
SHELL "C:\Programme\Blat\Blat -from " + absender$ + " -to " + empfaenger$ + " -subject " + betreff$ + " -server " + smtpserver$ + " " + ENVIRON$("TEMP") + "\~INHALT.TXT"
 
KILL ENVIRON$("TEMP") + "\~INHALT.TXT" | 	  
 
 
Die beiden letzten Varianten sind geeignet, wenn Windows läuft und QBasic aus 
 
einer Eingabeaufforderung aufgerufen wurde.
 
 
Hinweise: Diese Codebeispiele sind nur Entwürfe und wurden daher nicht getestet! _________________ +++ Die beliebte QBasic CD-ROM von QBasic.de - 670 MB QBasic-Stuff mit komfortabler HTML-Oberfläche. Für nur 5 EUR bestellbar auf www.antonis.de/qbcdueb.htm +++ | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		amsel
 
 
  Anmeldungsdatum: 27.02.2005 Beiträge: 3
 
  | 
		
			
				 Verfasst am: 27.02.2005, 22:20    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				dankeschön für die schnelle antwort.
 
 
bis jetzt hab ich es noch nicht hinbekommen aber ich probier morgen weiter.
 
 
viele grüße amsel _________________ Sei so frei 
 
das es dir egal ist,
 
wie andere über dich denken.
 
Du wirst glücklicher sein, 
 
wenn du dir gefällst. | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
  | 
   
 
     |