E-Mail Client mit ActiveX

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
thomas
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Fr, 23. Sep 2005 16:07
Wohnort: Bad Oldesloe
Kontaktdaten:

E-Mail Client mit ActiveX

Beitrag von thomas »

Hallo.

Ich würde das Rad nur ungern zweimal erfinden müssen und frage einfach mal in die Runde, ob jemand einen
E-Mail Client empfehlen kann, den ich ganz simpel per ActiveX in meine vorhandene Anwendung integrieren
kann. Der E-Mail Client sollte ähnliche Funktionen wie Outlook besitzen und möglichst bedienerfreundlich sein.
Es geht mir also nicht nur um das Senden und Empfangen, sondern auch um die Verwaltung der E-Mails.

Viele Grüß

Thomas
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hallo,

das Thema hatten wir hier vor kurzem. Outloock muß wohl funtk. mußt du mal suchen wo das steht
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: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Thomas.

Wir nutzen die SMTP/POP-Engine von Marshallsoft (Beispielcode für Xbase enthalten). Alles, was Mailversand, -eingang und -verwaltung anbetrifft, haben wir dann drumherum gestrickt. Das läuft nicht über ActiveX, sondern über eingebundene DLLs. Funktioniert schon seit Jahren einwandfrei. Für HTML-Vorschau wird dann ein IE-Control eingebunden.

http://www.marshallsoft.com
Herzlich,
Tom
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Hallo Thomas,
ich kann mich Tom´s Meinung zur Library von Marshallsoft nur anschließen. Auch ich nutze die Library schon seit Jahren ohne Probleme.

Allerdings unterstützt das Tool keine SSL-Verbindungen. Sollte dies ein KO-Kriterium für Dich sein, wirst Du Dich nach einem anderem Lösungsansatz umschauen müssen.

Gruß, Olaf
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: E-Mail Client mit ActiveX

Beitrag von AUGE_OHR »

hi,
thomas hat geschrieben: Es geht mir also nicht nur um das Senden und Empfangen, sondern auch um die Verwaltung der E-Mails.
die Frage ist ob die Emails weiterhin im M$ Programm verbleiben sollen
oder du die Emails dann in eine DBF schaufelst ?

ich persönlich halte nichts davon das die Leute massive MB in M$ Outlook
/ OE "speichern" den dafür ist es IMHO nicht gedacht.

als free Tool kann man auch SOCMAPI.DLL benutzen um damit auf den
MAPI Client zuzugreifen und die Emails in eine DBF zu schaufeln, aber
mehr als der CLient selbst kann wird man damit nicht lösen können.


gruss by OHR
Jimmy
thomas
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Fr, 23. Sep 2005 16:07
Wohnort: Bad Oldesloe
Kontaktdaten:

Beitrag von thomas »

Hallo Tom. Hallo Olaf.

Danke für den Tipp. Ich denke das die Library von Marshallsoft genau die richtige Lösung seien kann.
Es ist halt nur so, das noch das Drumherum fehlt, was ich mir eigentlich sparen wollte. :|

Gruß

Thomas
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Beitrag von Muecke »

Hallo,

ich hab mir die

Code: Alles auswählen

Marshallsoft (Beispielcode für Xbase enthalten). 
angeschaut. Würde mich mal interessieren, wie man dies in xbase einbinden kann.
Gruss Thomas
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
Muecke hat geschrieben: ich hab mir die

Code: Alles auswählen

Marshallsoft (Beispielcode für Xbase enthalten). 
angeschaut. Würde mich mal interessieren, wie man dies in xbase einbinden kann.
es gibt doch das File FROM.PRG was man sich umstricken kann.

Code: Alles auswählen

///////////////////////////////////////////////////////////////////////////////
//
//  Function-oriented code created by the Xbase++ FormDesigner
//    Creation date: 08/13/01 Time: 03:52:00
//
///////////////////////////////////////////////////////////////////////////////

*** To compile: XPP FROM.PRG
*** To link: ALINK /SUBSYSTEM:WINDOWS FROM.OBJ SEE32.LIB

#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Font.ch"

#INCLUDE "DLL.CH"
#INCLUDE "KEYCODE.CH"
#INCLUDE "SEE32.CH"

// jaja ich habe damals PUBLIC verwandt ...
PUBLIC oXbpExit
PUBLIC oXbpCheck
PUBLIC oXbpServer
PUBLIC oXbpUser
PUBLIC oXbpPass
PUBLIC oXbpOutput

Function ShowError(ErrCode)
Temp = SPACE(128)
Code = XseeErrorText(0,ErrCode,@Temp,128)
Temp = Left(Temp, Code)
Qout(Temp)
oXbpOutput:setData(Temp)
return 0

Function CheckMail()
NL = Chr(13) + Chr(10)
oXbpCheck:caption := "Please wait"
oXbpCheck:configure()
* attach SEE
If SEE_KEY_CODE = 0
  X = oXbpOutput:getData()
  oXbpOutput:setData(X + "Type 'SW Info' on tool bar!" + NL)
EndIf
Code = XseeAttach(1, SEE_KEY_CODE)
If Code < 0
  ***Qout("Cannot attach SEE")
  X = oXbpOutput:getData()
  oXbpOutput:setData(X + "Cannot attach SEE")
  Code = XseeRelease()
  Return 1
EndIf
* connect to server
Server = oXbpServer:getData()
User = oXbpUser:getData()
Pass = oXbpPass:getData()
Code = XseePop3Connect(0, @Server, @User, @Pass)
If Code < 0
  ShowError(Code)
  Code = XseeRelease()
  Return 1
EndIf
* get # messages waiting
NbrMsg = XseeGetEmailCount(0)
if NbrMsg < 0
  ShowError(Code)
  Code = XseeRelease()
  Return 0
EndIf
for I = 1 to NbrMsg
  ***Qout("*** Message " + LTRIM(STR(I)) + " ***")
  X = oXbpOutput:getData()
  oXbpOutput:setData(X + "*** Message " + LTRIM(STR(I)) + " ***" + NL)
  Buffer = Space(5000)
  * read headers only
  Code = XseeGetEmailLines(0,I,0,@Buffer,5000)
  If Code < 0
    ShowError(Code)
    Code = XseeRelease()
    Return 1
  EndIf
  Buffer = Left(Buffer,Code)
  * display "DATE: " line
  Temp = SPACE(128)
  Code = XseeExtractText(@Buffer, "Date: ", @Temp, 128)
  if Code > 0
    Temp = Left(Temp,Code)
    ***Qout(Temp)
    X = oXbpOutput:getData()
    oXbpOutput:setData(X + Temp)
  endif
  * display "FROM: " line
  Temp = SPACE(128)
  Code = XseeExtractText(@Buffer, "From: ", @Temp, 128)
  if Code > 0
    Temp = Left(Temp,Code)
    ***Qout(Temp)
    X = oXbpOutput:getData()
    oXbpOutput:setData(X + Temp)
  endif
endfor
* all done
X = oXbpOutput:getData()
oXbpOutput:setData(X + "All done.")
Code = XseeClose(0)
Code = XseeRelease()
oXbpCheck:caption := "Check Mail"
oXbpCheck:configure()
return 0

PROCEDURE Main
   LOCAL nEvent, mp1, mp2
   LOCAL oDlg, oXbp, drawingArea, aEditControls := {}
   LOCAL Code

   NL = Chr(13) + Chr(10)

   oDlg := XbpDialog():new( AppDesktop(), , {203,112}, {320,310}, , .F.)
   oDlg:taskList := .T.
   oDlg:title := "From"
   oDlg:create()

   drawingArea := oDlg:drawingArea
   drawingArea:setFontCompoundName( "8.Arial" )

   oXbpExit := XbpPushButton():new( drawingArea, , {12,12}, {96,24} )
   oXbpExit:caption := "Exit"
   oXbpExit:clipSiblings := .T.
   oXbpExit:create()
   oXbpExit:activate := {|| Gather( aEditControls ), PostAppEvent( xbeP_Close ) }

   oXbpCheck := XbpPushButton():new( drawingArea, , {132,12}, {96,24} )
   oXbpCheck:caption := "Check Mail"
   oXbpCheck:clipSiblings := .T.
   oXbpCheck:create()
   oXbpCheck:activate := {|| Code = CheckMail()}

   oXbpServer := XbpSLE():new( drawingArea, , {120,252}, {132,24}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oXbpServer:clipSiblings := .T.
   oXbpServer:create()

   oXbpUser := XbpSLE():new( drawingArea, , {120,228}, {132,24}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oXbpUser:clipSiblings := .T.
   oXbpUser:create()

   oXbpPass := XbpSLE():new( drawingArea, , {120,204}, {132,24}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oXbpPass:clipSiblings := .T.
   oXbpPass:create()

   oXbpOutput := XbpMle():new( drawingArea, , {12,48}, {288,144}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oXbpOutput:clipSiblings := .T.
   oXbpOutput:create()

   oXbpServer:setData("myPop3Server")
   oXbpUser:setData("myUsername")
   oXbpPass:setData("myPassword")
   oXbpOutput:setData("Push 'CheckMail' below." + NL)

   oXbp := XbpStatic():new( drawingArea, , {12,252}, {84,24} )
   oXbp:caption := "Server"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()

   oXbp := XbpStatic():new( drawingArea, , {12,228}, {84,24} )
   oXbp:caption := "User"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()

   oXbp := XbpStatic():new( drawingArea, , {12,204}, {84,24} )
   oXbp:caption := "Pass"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()

   oDlg:show()

   nEvent := xbe_None
   DO WHILE nEvent <> xbeP_Close
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      oXbp:handleEvent( nEvent, mp1, mp2 )
   ENDDO
RETURN
gruss by OHR
Jimmy
Antworten