Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

email Aufruf

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1822
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

email Aufruf

Beitrag von Rolf Ramacher » Do, 02. Okt 2014 10:43

bei WIN 7 läuft das ganze
bei WIN 8 gibt es die Meldung Das System kann die angegebene Datei nicht finden. ist der Aufruf bei WIN 8 anders ?

Code: Alles auswählen

		RunShell( "url.dll,FileProtocolHandler mailto:" + cEmail +"?subject=" + cSubject +"&body="+cAnrede , 'Rundll32.exe' )
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6866
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: email Aufruf

Beitrag von Tom » Do, 02. Okt 2014 13:15

Nein, das ist bei Windows 8 nicht anders. Welche Datei kann nicht gefunden werden - URL.DLL oder RUNDLL32.EXE? Es könnte unter sehr originellen Bedingungen etwas mit den Rechten zu tun haben. Lass doch mal prüfen, ob beide Dateien unter Laufbedingungen Deiner Applikation auch sichtbar sind (Windows-Suche). "URL.DLL" befindet sich in "\Windows\System32", "RUNDLL32.EXE" ebenfalls, bei 64-Bit-Systemen zusätzlich in "\Windows\SysWOW64".
Herzlich,
Tom

Benutzeravatar
Roland Gentner
1000 working lines a day
1000 working lines a day
Beiträge: 946
Registriert: Fr, 24. Nov 2006 8:30
Wohnort: Neresheim
Kontaktdaten:

Re: email Aufruf

Beitrag von Roland Gentner » So, 05. Okt 2014 15:23

Hallo
Rolf Ramacher hat geschrieben:

Code: Alles auswählen

RunShell( "url.dll,FileProtocolHandler mailto:" + cEmail +"?subject=" + cSubject +"&body="+cAnrede , 'Rundll32.exe' )
Nette Funktion mit RunShell(...)! Man lernt nie aus...
Gruß
Roland

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10723
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: email Aufruf

Beitrag von AUGE_OHR » Mo, 06. Okt 2014 3:48

Rolf Ramacher hat geschrieben:

Code: Alles auswählen

		RunShell( "url.dll,FileProtocolHandler mailto:" + cEmail +"?subject=" + cSubject +"&body="+cAnrede , 'Rundll32.exe' )
RunShell() ... wie wäre es per Windows API und einem DLLCall

Code: Alles auswählen

FUNCTION SendMail( cMailto, cSubject, cBody )
LOCAL cFile := "mailto:"+cMailto+;
               " ?subject="+cSubject+;
               " &body="+cBody

DllCall( "SHELL32.DLL",DLL_STDCALL,"ShellExecuteA",AppDesktop():getHWND(),"Open",cFile,Nil,Curdir(),SW_NORMAL)
RETURN .T.
gruss by OHR
Jimmy

Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1822
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: email Aufruf

Beitrag von Rolf Ramacher » Mo, 06. Okt 2014 9:19

Hallo Jimmy,

danke ich werde es mal ausprobieren. aber was steht bei der Funktion die die SendMail() aufgerufen hat da ja ein .t. zurückgegeben wird. ?
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1835
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: email Aufruf

Beitrag von Herbert » Mo, 06. Okt 2014 17:50

Rolf, DllCall() gibt den Rückgabewert der ausgeführten DLL-Funktion zurück.
In diesem Fall würde dir einzig geholfen, wenn der PC kein Email-Programm installiert hätte, sonst ist der Aufruf immer OK, selbst wenn später ein Fehler im Email-Programm auftreten würde.
Bei Runshell erhälst du ja auch nur dann eine -1, wenn der Aufruf schief geht, sonst eine 0.
Grüsse Herbert
Immer in Bewegung...

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13900
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: email Aufruf

Beitrag von brandelh » Di, 07. Okt 2014 11:12

falls man RunShell() nicht asyncron ausführt.
Gruß
Hubert

Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1822
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: email Aufruf

Beitrag von Rolf Ramacher » So, 12. Okt 2014 10:57

also bei Win 8 fehlst die rundll32.exe - das ist aber doch eine Systemdatei die kann doch nicht fehlen normalerweise
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6866
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: email Aufruf

Beitrag von Tom » So, 12. Okt 2014 11:24

also bei Win 8 fehlst die rundll32.exe
Nein, tut sie nicht. Jedenfalls nicht standardmäßig. Aber irgendein Spaßvogel könnte sie gelöscht haben, oder ein findiger System-Administrator, der glaubt, auf diese Weise Malware auszusperren.
Dat Dingen is nich ganz unwichtich:

http://de.wikipedia.org/wiki/Rundll32.exe
Herzlich,
Tom

Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1822
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: email Aufruf

Beitrag von Rolf Ramacher » Mi, 15. Okt 2014 17:53

so ich wollte jetzt bei mir das Beispiel von Jimmy umsetzen - bringt bei mir Win7 eine Fehlermeldung
unbekannte Variable SW_NORMAL

die dll.ch und die fileio.ch habe ich eingebunden- fehlt vielleicht noch eine ch-Datei ?

Gefunden FC_NORMAL ist richtig

aber ich bekomme es nicht hin - das ich den Abenser mit übergebe mit Zeilenschaltung. Chr(13) funkt. auch nicht - alles in einer zeile

Code: Alles auswählen

cBody:=cAnrede
		cBody+=CRLF
		cBody+=CRLF
		cBody+="Mit freundlichen Grüßen"+CRLF
		cBody+="SPRINTER Software Gmbh"
		SendMail(cEmail,cSubject,cBody)
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2313
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: email Aufruf

Beitrag von Wolfgang Ciriack » Mi, 15. Okt 2014 20:31

Hier sind die Definitionen:

Code: Alles auswählen

#define SW_HIDE             0
#define SW_SHOWNORMAL       1
#define SW_NORMAL           1
#define SW_SHOWMINIMIZED    2
#define SW_SHOWMAXIMIZED    3
#define SW_MAXIMIZE         3
#define SW_SHOWNOACTIVATE   4
#define SW_SHOW             5
#define SW_MINIMIZE         6
#define SW_SHOWMINNOACTIVE  7
#define SW_SHOWNA           8
#define SW_RESTORE          9
#define SW_SHOWDEFAULT      10
#define SW_MAX              10
Viele Grüße
Wolfgang

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13900
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: email Aufruf

Beitrag von brandelh » Mi, 15. Okt 2014 21:14

ist das HTML eMail ?

" Text <br> weiterer Text" ?
Gruß
Hubert

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10723
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: email Aufruf

Beitrag von AUGE_OHR » Do, 16. Okt 2014 0:56

Rolf Ramacher hat geschrieben:aber ich bekomme es nicht hin - das ich den Abenser mit übergebe mit Zeilenschaltung. Chr(13) funkt. auch nicht - alles in einer zeile

Code: Alles auswählen

cBody:=cAnrede
		cBody+=CRLF
		cBody+=CRLF
		cBody+="Mit freundlichen Grüßen"+CRLF
		cBody+="SPRINTER Software Gmbh"

		SendMail(cEmail,cSubject,cBody)
was für ein Email Programm ?

wie Hubert schon andeutete ist es z.b. bei Outlook HTML Syntax, auch wenn es als Text verschickt wird.

Code: Alles auswählen

  cBody := Strtran(cBody,Chr(13),'%0d')
  cBody := Strtran(cBody,Chr(10),'%0a')
  cBody := Strtran(cBody,' ','%20')
  cBody := Strtran(cBody,Chr(38),'%26')
  cBody := Strtran(cBody,'?','%3f')
  cBody := Strtran(cBody,'=','%3d')
p.s. erstaunlich das es mit dem "ß" geht.
gruss by OHR
Jimmy

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2313
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: email Aufruf

Beitrag von Wolfgang Ciriack » Do, 16. Okt 2014 7:04

"SPRINTER Software Gmbh"
und bitte "GmbH" :)
Viele Grüße
Wolfgang

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13900
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: email Aufruf

Beitrag von brandelh » Do, 16. Okt 2014 8:49

Bei meinem Thunderbird wird <br> einfach als Text interpretiert.
Aber dies funktioniert:

Code: Alles auswählen

proc main()
   local cEmail   := "hubert.brandel@gmx.de"
   local cSubject := "Test von Hubert über MailTo"
   local cAnrede  := "Hallo Hubert, wie gehts ... %0c%0aNeue Zeile"
   ? "call runshell eMail Handler"

   RunShell( "url.dll,FileProtocolHandler mailto:" + cEmail +"?subject=" + cSubject +"&body="+cAnrede , 'Rundll32.exe' )
   ? "Ende"
   inkey(10)

return
Am Besten also eine Funktion nach Jimmys Vorlage bauen, die den Body übersetzt und danach vergessen ;-)
Gruß
Hubert

Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1822
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: email Aufruf

Beitrag von Rolf Ramacher » Do, 16. Okt 2014 11:28

Hubert danke für den Hinweis - klappt - jetzt muss ich es nur noch bei Win8 testen
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13900
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: email Aufruf

Beitrag von brandelh » Do, 16. Okt 2014 12:09

Jimmy hatte die richtige Syntax ;-)
Gruß
Hubert

Antworten