Probleme mit Mail an viele Adressen
Moderator: Moderatoren
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Probleme mit Mail an viele Adressen
Hallo, habe wieder mal ein Problem.
Wenn ich Mail aus meiner Appl. versenden will, verwende ich folgenden Aufruf, wobei in sMail die Emailadresse(n) steht(en). Das klappt bei einer oder auch wenigen Email Adressen recht gut.
RunShell( "url.dll,FileProtocolHandler mailto:" + sEmail +"?subject=" + "" + "" + "" , 'Rundll32.exe' )
Wenn ich das für z.B. 100 Email Adressen mache, kommt ein Fenster mit einer Fehlermeldung:
Verknüpfungsproblem "mailto: mein Adressstring + ?subject=" konnte nicht geöffnet werden
Gibt es hier eine Größenbeschränkung des eMailadressen Strings?
Ich habe in diesem Zusammenhang was von der socmapi.dll in einem Thread gelesen, mit der das alles besser funktionieren soll. Wo bekomme ich diese her? Bei Alaska steht nur so eine Kurzbeschreibung mit der ich nichts anfangen kann.
Viele Grüße
Wolfgang
Wenn ich Mail aus meiner Appl. versenden will, verwende ich folgenden Aufruf, wobei in sMail die Emailadresse(n) steht(en). Das klappt bei einer oder auch wenigen Email Adressen recht gut.
RunShell( "url.dll,FileProtocolHandler mailto:" + sEmail +"?subject=" + "" + "" + "" , 'Rundll32.exe' )
Wenn ich das für z.B. 100 Email Adressen mache, kommt ein Fenster mit einer Fehlermeldung:
Verknüpfungsproblem "mailto: mein Adressstring + ?subject=" konnte nicht geöffnet werden
Gibt es hier eine Größenbeschränkung des eMailadressen Strings?
Ich habe in diesem Zusammenhang was von der socmapi.dll in einem Thread gelesen, mit der das alles besser funktionieren soll. Wo bekomme ich diese her? Bei Alaska steht nur so eine Kurzbeschreibung mit der ich nichts anfangen kann.
Viele Grüße
Wolfgang
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Wolfgang,
das wurde doch bereits alles geklärt und (auch Dir) erklärt?
Schau mal hier: http://www.xbaseforum.de/viewtopic.php?t=1794
Viele Grüße,
Martin
das wurde doch bereits alles geklärt und (auch Dir) erklärt?
Schau mal hier: http://www.xbaseforum.de/viewtopic.php?t=1794
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Hallo Martin, hallo Hubert,
jetzt hab ichs verstanden - Anzahl Parameter .... klingt logisch. Aber mit dem Thema socmapi.dll kann ich immer noch nichts anfangen. Finde die nirgends. Wie gesagt, bei Alaska liegt nur:
SocMapi.DLL
Easy Xbase++ accessible interface to Windows MAPI
- Version 1.02 -
und Text und eine Beschreibung eines MAPIDEMO.PRG die im Anhang stehen soll. Welcher Anhang ???
Tut mir ja leid, daß ich Euch nerve ..
Gruß Wolfgang
jetzt hab ichs verstanden - Anzahl Parameter .... klingt logisch. Aber mit dem Thema socmapi.dll kann ich immer noch nichts anfangen. Finde die nirgends. Wie gesagt, bei Alaska liegt nur:
SocMapi.DLL
Easy Xbase++ accessible interface to Windows MAPI
- Version 1.02 -
und Text und eine Beschreibung eines MAPIDEMO.PRG die im Anhang stehen soll. Welcher Anhang ???
Tut mir ja leid, daß ich Euch nerve ..
Gruß Wolfgang
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Hab da noch was zu RunSehll gefunden ...
http://techsupt.winbatch.com/TS/T000001050F91.html
Gruß Wolfgang
http://techsupt.winbatch.com/TS/T000001050F91.html
Gruß Wolfgang
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Wolfgang,
genau - lade Dir mal die DLL herunter und entzippe sie, dann findest Du auch die MAPIDEMO.PRG
Viele Grüße,
Martin
genau - lade Dir mal die DLL herunter und entzippe sie, dann findest Du auch die MAPIDEMO.PRG
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Doch
Gehe links im Menü auf DOwnload, dann auf ACSN und ganz unten auf der Seite hast Du die SOCMAPI.
Unten in dem Block hast Du einen Verweis auf die Hilfe und oben rechts in dem Block hast Du den link auf die socmapi3.zip
Viele Grüße,
Martin
Gehe links im Menü auf DOwnload, dann auf ACSN und ganz unten auf der Seite hast Du die SOCMAPI.
Unten in dem Block hast Du einen Verweis auf die Hilfe und oben rechts in dem Block hast Du den link auf die socmapi3.zip
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Hallo,
habe mir jetzt mal das mapidemo.prg installiert und laufen lassen. Klingt alles ganz logisch. Bringt mir allerdings gleich zu Anfang den Fehler "Unknown Mapi Error". Die socmapi.dll ist aber ordnungsgemäß geladen?? Zumindest läuft die INIT PROCEDURE SocMapiI() durch.
Stehe wieder mal auf dem Schlauch ...
Gruß Wolfgang
habe mir jetzt mal das mapidemo.prg installiert und laufen lassen. Klingt alles ganz logisch. Bringt mir allerdings gleich zu Anfang den Fehler "Unknown Mapi Error". Die socmapi.dll ist aber ordnungsgemäß geladen?? Zumindest läuft die INIT PROCEDURE SocMapiI() durch.
Stehe wieder mal auf dem Schlauch ...
Gruß Wolfgang
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Wolfgang,
so habe ich das bei mir eingebunden:
Viele Grüße,
Martin
so habe ich das bei mir eingebunden:
Code: Alles auswählen
snDllHandle := DllLoad( "SocMapi.Dll" )
if snDllHandle == 0
MsgBox("SOCMAPI.DLL nicht gefunden!")
return
endif
//Get Function handles from DLL.
scDLLSocMapiIsInit := DllPrepareCall( snDllHandle, DLL_STDCALL, "SocMapiIsInit" )
scDLLSocMapiInit := DllPrepareCall( snDllHandle, DLL_STDCALL, "SocMapiInit" )
scDLLSocMapiDeInit := DllPrepareCall( snDllHandle, DLL_STDCALL, "SocMapiDeInit" )
scDLLSocMapiIsLoggedOn:= DllPrepareCall( snDllHandle, DLL_STDCALL, "SocMapiIsLoggedOn" )
scDLLSocMapiLogon := DllPrepareCall( snDllHandle, DLL_STDCALL, "SocMapiLogon" )
scDLLSocMapiLogoff := DllPrepareCall( snDllHandle, DLL_STDCALL, "SocMapiLogoff" )
scDLLSocMapiSendMail := DllPrepareCall( snDllHandle, DLL_STDCALL, "SocMapiSendMail" )
scDLLSocMapiPostMail := DllPrepareCall( snDllHandle, DLL_STDCALL, "SocMapiPostMail" )
scDLLInboxOpen := DllPrepareCall( snDllHandle, DLL_STDCALL, "InboxOpen" )
scDLLInboxClose := DllPrepareCall( snDllHandle, DLL_STDCALL, "InboxClose" )
scDLLInboxGoTop := DllPrepareCall( snDllHandle, DLL_STDCALL, "InboxGoTop" )
scDLLInboxSkip := DllPrepareCall( snDllHandle, DLL_STDCALL, "InboxSkip" )
scDLLAskFlag := DllPrepareCall( snDllHandle, DLL_STDCALL, "AskFlag" )
scDLLAskBufferSize := DllPrepareCall( snDllHandle, DLL_STDCALL, "AskBufferSize" )
scDLLStuffBuffer := DllPrepareCall( snDllHandle, DLL_STDCALL, "StuffBuffer" )
scDLLCountRecipients := DllPrepareCall( snDllHandle, DLL_STDCALL, "CountRecipients" )
scDLLCountAttachments := DllPrepareCall( snDllHandle, DLL_STDCALL, "CountAttachments" )
scDLLSaveAttachments := DllPrepareCall( snDllHandle, DLL_STDCALL, "SaveAttachments" )
scDLLMarkAsRead := DllPrepareCall( snDllHandle, DLL_STDCALL, "MarkAsRead" )
//initialize MAPI
if DllExecuteCall( scDLLSocMapiIsInit ) == 0
nErr := DllExecuteCall( scDLLSocMapiInit )
if nErr != 0
MsgBox("MAPI kann nicht initialisiert werden! Errorcode: " + ALLTRIM(str(nErr)) )
return
endif
endif
//if not already logged on, Logon to new MAPI session
if DllExecuteCall( scDLLSocMapiIsLoggedOn ) == 0
if (nErr := DllExecuteCall(scDLLSocMapiLogon)) != SUCCESS_SUCCESS
NotifyError( nErr )
return
endif
endif
.....
BEGIN SEQUENCE
nErr := DllExecuteCall( scDLLSocMapiSendMail , mailadr , ConvToAnsiCP( alltrim( ::Subject:editBuffer() ) ), ConvToAnsiCP( mailtext ), "", NOFLAG )
if nErr != SUCCESS_SUCCESS .and. nErr != MAPI_USER_ABORT
break nErr
endif
RECOVER USING nErr
NotifyError (nErr)
END SEQUENCE
....
//Logoff from MAPI session
DllExecuteCall(scDLLSocMapiLogoff)
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Hallo Martin,
bin gerade erst dazu gekommen, Deine Lösung mal auszuprobieren. Leider bringt er immer noch den Fehler: "Unknown Mapi Error" und zwar an der Stelle wo er ein Mapi Logon versucht. Hast Du eine Ahnung, an was das liegen könnte?
Gruß Wolfgang
bin gerade erst dazu gekommen, Deine Lösung mal auszuprobieren. Leider bringt er immer noch den Fehler: "Unknown Mapi Error" und zwar an der Stelle wo er ein Mapi Logon versucht. Hast Du eine Ahnung, an was das liegen könnte?
Code: Alles auswählen
//if not already logged on, Logon to new MAPI session
if DllExecuteCall( scDLLSocMapiIsLoggedOn ) == 0
if (nErr := DllExecuteCall(scDLLSocMapiLogon)) != SUCCESS_SUCCESS
NotifyError( nErr )
return
endif
endif
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Wolfgang,
hast Du denn bei Dir überhaupt eine MAPI-fähige Anwendung installiert und als Standardmailer im System angemeldet?
Was passiert denn, wenn Du im Webbrowser auf einen mailto:-link klickst?
Viele Grüße,
Martin
hast Du denn bei Dir überhaupt eine MAPI-fähige Anwendung installiert und als Standardmailer im System angemeldet?
Was passiert denn, wenn Du im Webbrowser auf einen mailto:-link klickst?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
hast du auch die ganzen #define Konstanten drin ?
startest du das ganze als Thread ?
hm ... wenn "mailto" funktioniert ist MAPI eingerichtet ...wasi01 hat geschrieben: Leider bringt er immer noch den Fehler: "Unknown Mapi Error" und zwar an der Stelle wo er ein Mapi Logon versucht.Code: Alles auswählen
//if not already logged on, Logon to new MAPI session if DllExecuteCall( scDLLSocMapiIsLoggedOn ) == 0 if (nErr := DllExecuteCall(scDLLSocMapiLogon)) != SUCCESS_SUCCESS NotifyError( nErr ) return endif endif
hast du auch die ganzen #define Konstanten drin ?
startest du das ganze als Thread ?
Code: Alles auswählen
//--error codes from MAPI.H
#define SUCCESS_SUCCESS 0
...
//--ID´s for Message items
#define ID_SUBJECT 0
...
//--Message Flags
#define NOFLAG 0
...
//--SKIP Flags
#define SKIP_ONLY 0
...
//--Function Handles
STATIC snDllHandle := 0
...
PROCEDURE MAPISEND( cJahr, cMonat, aJOB )
LOCAL cAdresses := "AUGE_OHR@WEB.de"
LOCAL cSubject := "DATEV Dateien 20" + cJahr + "/" + cMonat
LOCAL cMessage := ""
LOCAL cAttachments := ""
LOCAL nFlag := NOFLAG
LOCAL oMAPI
...
oMAPI := Thread():new()
oMAPI:start( "SENDNOW",;
cAdresses,;
cSubject,;
cMessage,;
cAttachments,;
nFlag )
RETURN
PROCEDURE SENDNOW( cAdresses, cSubject, cMessage, cAttachments, nFlag )
LOCAL nErr
//if not already logged on, Logon to new MAPI session
IF DllExecuteCall( scDLLSocMapiIsLoggedOn ) == 0
IF ( nErr := DllExecuteCall( scDLLSocMapiLogon ) ) != SUCCESS_SUCCESS
NOTIFYERROR( nErr )
RETURN
ENDIF
ENDIF
BEGIN SEQUENCE
//-- Pop up maileditor
* MsgBox("”ffne Maileditor")
nErr := DllExecuteCall( scDLLSocMapiSendMail,;
cAdresses,;
cSubject,;
cMessage,;
cAttachments,;
nFlag )
IF nErr != SUCCESS_SUCCESS .AND. nErr != MAPI_USER_ABORT
BREAK nErr
ENDIF
RECOVER USING nErr
NotifyError( nErr )
END SEQUENCE
DllExecuteCall( scDLLSocMapiLogoff )
RETURN
gruss by OHR
Jimmy
Jimmy
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hallo zusammen,
ich bin gerade dabei, daß bei mir auszuprobieren um z.B. die
xpperror.log an mich zu senden. Installiert ist bei mit Outlook express
wird auch gestartet. der Betreff wird eingetragen. Aber wie kann ich die xpperror.log als Dateianhang automatisch anhängen. Ich finder hierüber keine Doku. Geht das denn ?
Ich kann natürlich die xpperror.log in eine Variable lesen. Wollte ich aber eigentlich nicht.
ich bin gerade dabei, daß bei mir auszuprobieren um z.B. die
xpperror.log an mich zu senden. Installiert ist bei mit Outlook express
wird auch gestartet. der Betreff wird eingetragen. Aber wie kann ich die xpperror.log als Dateianhang automatisch anhängen. Ich finder hierüber keine Doku. Geht das denn ?
Ich kann natürlich die xpperror.log in eine Variable lesen. Wollte ich aber eigentlich nicht.
Code: Alles auswählen
Function Fehlersenden()
If File("xpperror.log")
RunShell( "url.dll,FileProtocolHandler mailto: sprinter-ramacher@t-online.de" +"?subject=xpperror.log"+"&body=xpperror.log", 'Rundll32.exe' )
EndIf
Return Nil
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hi,
@Hubert ich habe mal gesucht, aber kein Beispiel gefunden wie dies anzuwenden ist.
Mein Code sieht so aus:
Ich habe schon "attachName " auch "attachfile" benutzt
es erfolgt kein Fehler weder beim compilieren noch beim Start des Programms.
Kennt jemand den Syntax um die Datei anzuhängen ?
@Hubert ich habe mal gesucht, aber kein Beispiel gefunden wie dies anzuwenden ist.
Mein Code sieht so aus:
Code: Alles auswählen
Function Fehlersenden()
If File("xpperror.log")
RunShell( "url.dll,FileProtocolHandler mailto: sprinter-ramacher@t-online.de" +"?subject=xpperror.log"+"&body=xpperror.log"+;
+"&attach=xpperror.log", 'Rundll32.exe' )
EndIf
Return Nil
es erfolgt kein Fehler weder beim compilieren noch beim Start des Programms.
Kennt jemand den Syntax um die Datei anzuhängen ?
- Bertram Hansen
- Foren-Moderator
- Beiträge: 1015
- Registriert: Di, 27. Sep 2005 8:55
- Wohnort: 51379 Leverkusen
- Hat sich bedankt: 28 Mal
- Danksagung erhalten: 20 Mal
- Kontaktdaten:
Hallo Rolf,
bist Du Dir sicher das man über Mailto auch Dateianhänge versenden kann. Ich glaube das geht gar nicht.
Bei uns kann der User auch eine Fehlermeldung per eMail versenden. Dazu fülle ich den "Body" mit der Fehlermeldung.
bist Du Dir sicher das man über Mailto auch Dateianhänge versenden kann. Ich glaube das geht gar nicht.
Bei uns kann der User auch eine Fehlermeldung per eMail versenden. Dazu fülle ich den "Body" mit der Fehlermeldung.
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.
Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!