See4Xb und SSL

Moderator: Moderatoren

See4Xb und SSL

Beitragvon Wolfgang Ciriack » Mi, 11. Jun 2014 10:20

Hallo,
habe ein Problem bei einem Kunden mit T-Online-eMailadresse.
Stunnel baut Verbindung auf, die Verbindung klappt auch. Dann kommt ein ERROR 3803397 vSock timed out.
Hat das etl. schon jemand gehabt oder eine Vermutung, woran das liegen kann ?
(mit Outlook, denselben Konten und SSL-Ports klappt es).
Hier das Log:
Code: Alles auswählen
CreateProcess 0: pid=1540 thr=1536
Stunnel started (chan 0, process 0)
Connecting...
<200:3777642>
 VS Win32 Version 1.3.8 Build 1
SEE Win32 Version 7.1.0 Build 2
CiJu GmbH                                         
CID=11992
<101:3777642>
vs: LogHandle = 1532
vSock 0 created (IP 0)
<102:3777642>
LocalHost = '***-PC'
<104:3777642>
Server = '***-PC'
ServerIP = 192.168.2.101
<105:3777782>
vsConnect(0,'***-PC',8801) attempt 1
Socket=1544, RemoteIP=c0a80265, RemotePort=8801
connect(1544) returns 0
Server has accepted the connection
<106:3778391>
<201:3778422>
ERROR(3803397): SockCode=0 SeeCode=-8 PrevState=201 ThisState=-1 NextState=201
vSock timed out.
vSock timed out.vSock timed out.
*** seeRelease: Win32 11992 7.1.0 (2) ***
KillStunnel(0) pid=0
TerminateProcess 0: pid=1540 thr=1536
Stunnel killed (chan 0, process 0)
vSocket: 0 closed
*** Releasing channel 0 ***
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2245
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon Werner_Bayern » Mi, 11. Jun 2014 11:46

Servus Wolfgang,

Du verwendest eine alte Version von See, aktuell ist Version 7.2.0 Build 5. Stunnel verwende ich auch die aktuelle Version 5.01, funktioniert alles einwandfrei.
Meine Log sieht anders aus, mehr Infos. Du verwendest schon securesmtp.t-online.de auf SMTP-Port 465?

Code: Alles auswählen
seeSmtpConnectSSL(0,8801,465,'securesmtp.t-online.de'
Connecting...
<200:7801469>
 VS Win32 Version 1.3.9 Build 1
SEE Win32 Version 7.2.0 Build 5
es grüßt euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1234
Registriert: Sa, 30. Jan 2010 23:58
Wohnort: Niederbayern

Re: See4Xb und SSL

Beitragvon Wolfgang Ciriack » Mi, 11. Jun 2014 13:09

Hallo Werner,
ich habe beides versucht, einmal securesmtp.t-online.de und smtpmail.t-online.de (der ist in Outlook mit SSL angegeben).Port ist 465.
Ja, die Version ist nicht ganz aktuell, aber bei anderen Kunden hatte ich auch mit SSL bisher keine Probleme.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2245
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon brandelh » Mi, 11. Jun 2014 13:23

Ich hatte bei GMX und 1und1 keine Probleme, aber WEB.DE konnte ich nur zum Laufen bringen, wenn ich PORT 25 verwende, SLL aber .t. setze und stunnel automatisch konfigurieren lasse ...
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13483
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: See4Xb und SSL

Beitragvon Werner_Bayern » Mi, 11. Jun 2014 14:03

Der Fehlercode bedeutet
Socket timed out awaiting data.

Temporäres Server-Problem?
Mich wundert, dass Du mit smtpmail.t-online.de noch senden kannst...

Hast Du es schon mit der aktuellen Stunnel-Version versucht? Da hast sich viel getan: https://www.stunnel.org/index.html
Zuletzt geändert von Werner_Bayern am Mi, 11. Jun 2014 14:08, insgesamt 1-mal geändert.
es grüßt euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1234
Registriert: Sa, 30. Jan 2010 23:58
Wohnort: Niederbayern

Re: See4Xb und SSL

Beitragvon brandelh » Mi, 11. Jun 2014 14:07

Ich muss mich verbessern, eben hat 587 funktioniert, eventuell waren es bei WEB.DE nur temporäre Probleme,
wichtig ist aber dass ich selbst KEINE stunnel Konfiguration mache, das erledigt see für mich. Hier die Änderungen im MailSSL.PRG :

Code: Alles auswählen
*
* NAME: MailSSL.prg
*
* TYPE: Xbase++
*
* DATE: September 20, 2013.
*
...
*       MailSSL -> Stunnel -> smtp_server -> recipient
*
* STUNNEL:
*
*    Stunnel is a free SSL proxy server that provides SSL services
*    to Windows programs.
*
...

#INCLUDE "DLL.CH"
#INCLUDE "KEYCODE.CH" // angeblich besser ... #define SEE_KEY_CODE // das stimmt aber nicht, sonst wird der Code irgendwann doch bekannt.
#INCLUDE "SEE32.CH"     // hier gibt es ein Problem ! Da hier Quellcode enthalten ist, dürften die Zeilennummern nicht mehr stimmen. Besser #defin

#pragma library("see32.lib")

Procedure Main()

**************************************************************
   nSmtpPort   = 587
   cSmtpServer = "smtp.web.de"
   cSmtpUser   = "...@web.de'
   cSmtpPass   = "..."
   cSmtpFrom   = "NickName <"+cSmtpUser+">" // wenn hier jemand anderes steht als cSmtpUser, dann kann es Probleme geben ...
   cSmtpTo     = "<...>"

**********************
*** Proxy Parameters - Download from ftp://ftp.marshallsoft.com/pub/stunnel/stunnel.zip
* ProxyPort   : proxy port (to contact proxy on)
* ProxyDir    : proxy server directory
* ProxyExe    : proxy server executable
* ProxyCert   : proxy server certificate (PEM format)
nProxyPort = 8801
cProxyDir = "D:\...\Test\See\" // DER PFAD MUSS STIMMEN ! Eventuell ist man besser dran, wenn stunnel Dateien in SSL getrennt aufbewahrt werden.
cProxyExe = "stunnel.exe"
cProxyCert = "stunnel.pem"
nFlags = 1                     && 1 = display Stunnel icon on the taskbar
*************************************************************
cSmtpReply = Chr(0)
cSubject = "Emailing TEST.TXT with attachment MyMailSSL.PRG"
cCClist  = Chr(0) // wichtig ! Falls man nichts angibt.
cBCClist = Chr(0)
* Note 1: The path delimiter changed from comma to semicolon in version 3.6
* Note 2: Use full path names unless file is located in Xbase++ directory.
* Note 3: Note the leading '@' character in cMsgFile.
* Note 4: Verify the location of all referenced files.
cLocalDir = "D:\...\Test\See\"
cMsgFile = cLocalDir + "TEST.TXT"
cAttachment = cLocalDir + "MailSSL.PRG"
cLogName = cLocalDir + "MailSSL.LOG"
*** END PROGRAMMER *******************************************

CLS
? "*** MailSSL ***"
? "[Sends an email message]"

? "Proxy Port : " + LTrim(Str(nProxyPort))
? "        To : " + cSmtpTo
? "  LocalDir : " + cLocalDir
? "  Msg File : " + cMsgFile
? "   Subject : " + cSubject
? "Attachment : " + cAttachment
? "      User : " + cSmtpUser
?

* has the programmer edited the email parameter strings?
if nSmtpPort = 0
  ? "Must set SMTP port (normally 465 or 587)"
  return
endif

* has the programmer edited the email parameter strings?
if (Left(cSmtpServer, 1) = "!") .OR. (Left(cSmtpUser, 1) = "!") .OR. (Left(cSmtpUser, 1) = "!") .OR. (Left(cSmtpPass, 1) = "!")
  ? "The PROGRAMMER strings in this program must be edited before running!"
  return
endif

* attach SEE32.DLL
nCode = XseeAttach(1, SEE_KEY_CODE)
if nCode < 0
  ? "Key code = " + LTRIM(STR(SEE_KEY_CODE))
  ? "Error code = " + LTRIM(STR(nCode)) + ": Cannot attach SEE (check key code)"
  return
endif
* registered version always returns 999
if nCode <> 999
  ? Ltrim(Str(nCode)) + " days remaining for evaluation"
endif
* enable SEE logging
nCode = XseeStringParam(0, SEE_LOG_FILE, @cLogName)

* check files for existence
nCode = CheckFileList(cMsgFile)
if nCode = 0
  return
endif
nCode = CheckFileList(cAttachment)
if nCode = 0
  return
endif

* Enable quoting
nCode = XseeIntegerParam(0, SEE_QUOTED_PRINTABLE, QUOTED_PLAIN)
* connect to SMTP server

altd()

* pass SMTP proxy server info to SEE
nCode = XseeSetProxySSL(0, nFlags, @cProxyDir, @cProxyCert, @cProxyExe)
if nCode < 0
  ? "XseeSetProxySSL()-Error"
  ShowError(nCode)
  return
else
  ? "Proxy parameters set"
endif

altd()

? "Connecting to proxy server on port " + LTrim(Str(nProxyPort))
nCode = XseeSmtpConnectSSL(0, nProxyPort, nSmtpPort, @cSmtpServer, @cSmtpUser, @cSmtpPass, @cSmtpFrom, @cSmtpReply, Chr(0))
if nCode < 0
  ? "XseeSmtpConnectSSL()-Error"
  ShowError(nCode)
  return
endif

* send email message
? "Sending email to " + cSmtpTo
* prefix message filename with '@' character
cMsgFile = "@" + cMsgFile + Chr(0)
nCode = XseeSendEmail(0,@cSmtpTo,@cCClist,@cBCClist,@cSubject,@cMsgFile,@cAttachment)
if nCode < 0
  ShowError(nCode)
  return
else
  ? "Email has been sent."
endif
? "Closing connection."
nCode = XseeClose(0)
nCode = XseeRelease()
return

*************************************************

Function CheckFileList(cList)
Local nCode
Local cBuffer
cBuffer = Space(256)
nCode = XseeTestFileSet(0, @cList, @cBuffer, 256)
if nCode = 0
  * all files exist
  return 1
endif
* some files can't be opened
? "ERROR: File '" + Left(cBuffer, nCode) + "' cannot be opened"
nCode = XseeRelease()
return 0

*************************************************

Function ShowError(nErrCode)
Local nCode
Local cTemp
cTemp = SPACE(128)
* show SEE error
nCode = XseeErrorText(0, nErrCode, @cTemp, 128)
? Left(cTemp, nCode)
* show server's last response (if any)
nCode = XseeDebug(0, SEE_GET_LAST_RESPONSE, @cTemp, 128)
if nCode > 0
  ? Left(cTemp, nCode)
endif
* show location of log file
? "Log file is " + cLogName
nCode = XseeRelease()
return 1


und hier die LOG Datei - (T-Online kenne ich niemand) :
Code: Alles auswählen
*** seeIntegerParam(0,8,1)
*** seeSetProxySSL(0,1,'D:\...\Test\See\','stunnel.pem','stunnel.exe')
*** seeSmtpConnectSSL(0,8801,587,'smtp.web.de','...@web.de','*','Hubert <...@web.de>','HB <...@gmx.de>',''
*** seeStringParam(0,58,'...@web.de')
*** seeStringParam(0,57,*)
*** seeIntegerParam(0,29,1)
*** StartStunnel(0,'Smtp')
D:\HB_XBASE\Test\See\stunnel.exe D:\HB_XBASE\Test\See\SmtpConfig(0).txt  // automatisch erstellte Konfiguration
CreateProcess 0: pid=1132 thr=1128
Stunnel started (chan 0, process 0)
Connecting...
<200:25876307>
 VS Win32 Version 1.3.9 Build 1
SEE Win32 Version 7.2.0 Build 5
...
CID=...
<101:25876322>
vs: LogHandle = 1116
vSock 0 created (IP 0)
<102:25876338>
LocalHost = '...' // mein Rechner Name
<104:25876338>
Server = '...'     // mein Rechner Name
ServerIP = 192.168.0.27 // intern
<105:25876447>
vsConnect(0,'...',8801) attempt 1
Socket=1136, RemoteIP=c0a8001b, RemotePort=8801
connect(1136) returns 0
Server has accepted the connection
<106:25876977>
<201:25877009>
recv(0)=51
R: 220 web.de (mrweb001) Nemesis ESMTP Service ready
<202:25878803>
S: EHLO web.de
<203:25879068>
recv(0)=83
R: 250-web.de Hello web.de [82.113.106.100]
R: 250-SIZE 69920427
R: 250 AUTH LOGIN PLAIN
<160:25881267>
S: AUTH LOGIN
<162:25881517>
recv(0)=18
R: 334 VXNlcm5hbWU6
S: RmVobGVybWVsZHVuZ19IQl9Tb2Z0QHdlYi5kZQ==
<163:25881548>
recv(0)=18
R: 334 UGFzc3dvcmQ6
S: ************************
<164:25881829>
recv(0)=30
R: 235 Authentication succeeded
AUTH LOGIN ok
*** seeSendEmail
*** Sending...
<204:25881845>
S: MAIL FROM:<...@web.de>
<205:25881876>
recv(0)=43
R: 250 Requested mail action okay, completed
<206:25881938>
<207:25881938>
S: RCPT TO:<Hubert.Brandel@gmx.de>
<208:25881938>
recv(0)=8
R: 250 OK
<209:25882266>
S: DATA
<210:25882297>
recv(0)=46
R: 354 Start mail input; end with <CRLF>.<CRLF>
<221:25882968>
S: X-Mailer: MarshallSoft SMTP/POP3 Email Engine Version 7.2.0
<222:25882968>
S: X-OEM: ...
<223:25882968>
S: Date: Wed, 11 Jun 2014 13:49:58 +0200
<224:25882968>
S: To: <...>
<225:25882999>
S: From: ... <...@web.de>
<226:25882999>
S: Reply-To: HB <...@gmx.de>
<227:25882999>
S: Subject: Emailing TEST.TXT with attachment MyMailSSL.PRG
<228:25882999>
<229:25882999>
<230:25882999>
S: MIME-Version: 1.0
<231:25882999>
S: Content-Type: multipart/mixed; boundary="===SEE123419925876151===MIX==="
<233:25882999>
S:
<234:25882999>
S: --===SEE123419925876151===MIX===
<236:25882999>
S: Content-Type: text/plain
<237:25882999>
S: Content-Transfer-Encoding: quoted-printable

<239:25882999>
<244:25882999>
Opening message file [D:\HB_XBASE\Test\See\TEST.TXT]
Opening file [D:\HB_XBASE\Test\See\TEST.TXT]. Handle = 1360
<245:25882999>
GetMsgChar:Read 738 bytes
GetMsgChar:Read 0 bytes
S: SMTP Email Message
S:
S: SEE test: May 19, 2008.
S:
S: This is a test of the SMTP Email Engine..
S: This line exceeds 78 characters in length, so it should be broken up into two lines before sending.
S: The following line consists of the single '.' character.
S: ..
S: The above line should be sent as '..', but displayed after downloading
S: as a single '.'.
S:
S: The character in the parenthesis is the equals symbol: (=3D)
S:
S: This line has a period in character position 80 ---------------------------> (.)
S:
S: In order to send longer lines (up to 1000 characters per line), enable MIME
S: quoting by calling
S:
S:    seeIntegerParam(0, SEE_QUOTED_PRINTABLE, QUOTED_PLAIN)
S:
S: after seeAttach but before seeSendEmail or seeSendHTML.
S:
S: Regards,
S:
S: MarshallSoft
Closing file 1360
<260:25882999>
S:

--===SEE123419925876151===MIX===
<261:25882999>
$$$ AttachBegPtr = [D:\HB_XBASE\Test\See\MailSSL.PRG]
$$$ AttachEndPtr = []
S: Content-Type: application/octet-stream; name="MailSSL.PRG"
<262:25882999>
S: Content-Transfer-Encoding: base64
<263:25882999>
S: Content-Disposition: attachment; filename="MailSSL.PRG"
<264:25882999>
S:
<265:25882999>
Opening file [D:\HB_XBASE\Test\See\MailSSL.PRG]. Handle = 1360
<266:25882999>
...
S: IDENCg0K
Closing file 1360
### AttachBegPtr = [D:\HB_XBASE\Test\See\MailSSL.PRG]
### AttachEndPtr = []
<251:25882999>
S:
--===SEE123419925876151===MIX===--
.
<252:25884029>
recv(0)=72
R: 250 Requested mail action okay, completed: id=0MhDVJ-1X87IC1q6L-00MM8E
*** seeClose(0)
[Closing attachment]
<258:25884029>
S: QUIT
<259:25884060>
recv(0)=49
R: 221 web.de Service closing transmission channel
vSocket: 0 closed
KillStunnel(0) pid=0
TerminateProcess 0: pid=1132 thr=1128
Stunnel killed (chan 0, process 0)
*** seeRelease: Win32 12341 7.2.0 (5) ***
*** Releasing channel 0 ***


Die Konfiguration auf einen Web-Server je Port hätte vielleicht funktioniert, aber ich wollte mehrere Server gleichzeitig testen und keine zip Ports verbraten.
Das mit dem automatischen Versand funktioniert gut.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13483
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: See4Xb und SSL

Beitragvon brandelh » Mi, 11. Jun 2014 14:08

PS: bei GMX und WEB.DE erhält man bei falschem Port, User, Absender oder Kennwort immer "Mailbox unavailable" ... sehr aussagekräftig :wink:
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13483
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: See4Xb und SSL

Beitragvon Wolfgang Ciriack » Mi, 11. Jun 2014 16:16

Werde es mal übermorgen mit neuer stunnel versuchen. Ansonsten werde ich mir mal die Benutzerdaten geben lassen und bei t-online nachfragen bzw. eMail passwort etc. checken. t-Online war ja schon immer etwas besonderes :D
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2245
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon Martin Altmann » Do, 07. Mai 2015 0:41

Moin,
ich klinke mich mal hier ein, weil es so gut passt!
Ich will meinen Kunden ja jetzt auch die Möglichkeit geben, Massenmails zu versenden. Hatte noch eine See4XB von 2009 im Einsatz. Habe jetzt auf die aktuelle Version upgegradet, da sich ja mittlerweile einige Dinge bei den SMTP-Server-Standards geändert haben (z.B. SSL).
Habe auch manuell (nach dem Herunterladen von STUNNEL über die Marshallsoft-Webseite) die neueste Stunnel-Version (5.17) nachinstalliert - ohne Erfolg.
Von den STUNNEL-Dateien habe ich nur die in mein Programmverzeichnis (und somit auffindbar) übernommen, die auch in der Readme von Marshallsoft erwähnt werden (obwohl es noch wesentlich mehr Dateien im STUNNEL-Verzeichnis gibt) - und zwar nur die folgenden:
Code: Alles auswählen
   stunnel.html
   stunnel.exe
   stunnel.pem
   libeay32.dll
   ssleay32.dll
   zlib1.dll

Wobei ich die von Marshallsoft mitgelieferte .pem-Datei beibehalten habe und nicht mit der nach der Installation von STUNNEL 5.17 im Installationsprozeß erstellten ersetzt habe.
Sobald ich einen Server in meinem Programm konfiguriere und teste, werde ich mit angeblich ungültigem Usernamen oder asswort abgewesen - was natürlich Unsinn ist!
SSL_XBSEE.PNG
SSL_XBSEE.PNG (17.65 KiB) 1847-mal betrachtet

Als Absendeadresse hatte ich urssprünglich eine andere angegeben, aber Hubert schrieb hier weiter oben ausgeführt, dass eine andere From-Adresse als dem Usernamen Probleme bereiten könnte.
Wie bekommt ihr den Versand denn überhaupt hin? Folgende Parameter setze ich im Programm:
Code: Alles auswählen
   cEmptyStr := Chr(0)
//   cUser := alltrim( ::oTabCtrl:GetPage(_PAGE1_):USERNAME:EditBuffer() )
//   cPassword := alltrim( ::oTabCtrl:GetPage(_PAGE1_):PASSWORT:EditBuffer() )
   cUser := ConvToANSICp( alltrim( ::oTabCtrl:GetPage(_PAGE1_):USERNAME:EditBuffer() ) )
   cPassword := ConvToANSICp( alltrim( ::oTabCtrl:GetPage(_PAGE1_):PASSWORT:EditBuffer() ) )
   cBcc := iif( empty( ::oTabCtrl:GetPage(_PAGE1_):BCC:EditBuffer() ), Chr(0), "<" + ConvToANSICp( alltrim( ::oTabCtrl:GetPage(_PAGE1_):BCC:EditBuffer() ) ) + ">" )
   cFrom := "<" + ConvToANSICp( alltrim( ::oTabCtrl:GetPage(_PAGE1_):cFROM:EditBuffer() ) ) + ">"
   cReply := iif( empty( ::oTabCtrl:GetPage(_PAGE1_):REPLYTO:EditBuffer() ), Chr(0), "<" + ConvToANSICp( alltrim( ::oTabCtrl:GetPage(_PAGE1_):REPLYTO:EditBuffer() ) ) + ">" )
   nPort := val( ::oTabCtrl:GetPage(_PAGE1_):PORT:EditBuffer() )
   cServer := ConvToANSICp( alltrim( ::oTabCtrl:GetPage(_PAGE1_):SERVERNAME:EditBuffer() ) )
   cBetreff := ConvToANSICp( "Testmail: " + alltrim( ::oTabCtrl:GetPage(_PAGE1_):BETREFF:EditBuffer() ) )
   nVerschl := ::oTabCtrl:GetPage(_PAGE1_):AUTHART:GetSelectedData()
   nAuthenti := iif( ::oTabCtrl:GetPage(_PAGE1_):AUTHENTIFI:GetData(), 1, 0 )
   lSSL := ::oTabCtrl:GetPage(_PAGE1_):VERSCHLUES:GetData()
   cAnhang := trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE1:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE2:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE3:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE4:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE5:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE6:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE7:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE8:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE9:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE10:EditBuffer() ) + CRLF
   cAnhang += trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE11:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE12:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE13:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE14:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE15:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE16:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE17:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE18:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE19:EditBuffer() ) + CRLF + trim( ::oTabCtrl:GetPage(_PAGE2_):ZEILE20:EditBuffer() )
   cMailtext := ConvToANSICp( cAnhang )
   nProxyPort := 8801             
   cProxyDir := CurDrive() + ":\Easydogw\"
   cProxyExe := "stunnel.exe"
   cProxyCert := "stunnel.pem"
   nFlags := 1                     // 1 = display Stunnel icon on the taskbar
   cLogName := cProxyDir + "SEE4XB.LOG"
   nCode := XseeAttach(1,  SEE_KEY_CODE)
   if nCode < 0
      cTemp := SPACE(500)
      nCode := XseeErrorText(0,nCode,@cTemp,500)
      dsConfirmBox(, "Die Initialisierung ist fehlgeschlagen!" ;
                  + chr( xbeK_RETURN ) + "Fehlertext: " + Left( cTemp, nCode ), ;
                  "Prüfung fehlgeschlagen", ;
                  {{BMP_PBOKAY, ""}}, ;
                  XBPMB_CRITICAL,,,,,.t.,,, {|oDlg| oDlg:TextOptions:=XBPSTATIC_TEXT_LEFT+XBPSTATIC_TEXT_VCENTER} )
      nCode := XseeRelease()
   else
#ifdef ENTWICKLUNG
      nCode := XseeStringParam(0, SEE_LOG_FILE, @cLogName)
#endif
      nCode := XseeIntegerParam(0, SEE_IGNORE_REJECTED, 1)
      if lSSL
         nCode := XseeSetProxySSL(0, nFlags, @cProxyDir, @cProxyCert, @cProxyExe)
         if nCode < 0
            cTemp := SPACE(500)
            nCode := XseeErrorText(0,nCode,@cTemp,500)
            dsConfirmBox(, "Die Verschlüsselung konnte nicht aktiviert werden!" ;
                        + chr( xbeK_RETURN ) + "Fehlertext: " + Left( cTemp, nCode ), ;
                        "Prüfung fehlgeschlagen", ;
                        {{BMP_PBOKAY, ""}}, ;
                        XBPMB_CRITICAL,,,,,.t.,,, {|oDlg| oDlg:TextOptions:=XBPSTATIC_TEXT_LEFT+XBPSTATIC_TEXT_VCENTER} )
         else
            nCode := XseeIntegerParam(0, SEE_AUTHENTICATE_PROTOCOL, nVerschl)
            nCode := XseeSmtpConnectSSL(0, nProxyPort, nPort, @cServer, @cUser, @cPassword, @cFrom, @cReply, Chr(0))

            if nCode < 0
               cTemp := SPACE(500)
               nCode := XseeErrorText(0,nCode,@cTemp,500)
               dsConfirmBox(, "Die Anmeldung am SMTP-Server war nicht möglich!" ;
                           + chr( xbeK_RETURN ) + "Fehlertext: " + Left( cTemp, nCode ), ;
                           "Prüfung fehlgeschlagen", ;
                           {{BMP_PBOKAY, ""}}, ;
                           XBPMB_CRITICAL,,,,,.t.,,, {|oDlg| oDlg:TextOptions:=XBPSTATIC_TEXT_LEFT+XBPSTATIC_TEXT_VCENTER} )
            else
               cTo := cFrom
               nCode := XseeIntegerParam(0, SEE_QUOTED_PRINTABLE, QUOTED_ISO_8859_1)
               nCode := XseeSendEmail(0,@cTo,@cEmptyStr,@cBcc,@cBetreff,@cMailtext,@cEmptyStr)
               if nCode < 0
                  cTemp := SPACE(500)
                  nCode := XseeErrorText(0,nCode,@cTemp,500)
                  dsConfirmBox(, "Die Testmail konnte nicht gesendet werden!" ;
                              + chr( xbeK_RETURN ) + "Fehlertext: " + Left( cTemp, nCode ), ;
                              "Prüfung fehlgeschlagen", ;
                              {{BMP_PBOKAY, ""}}, ;
                              XBPMB_CRITICAL,,,,,.t.,,, {|oDlg| oDlg:TextOptions:=XBPSTATIC_TEXT_LEFT+XBPSTATIC_TEXT_VCENTER} )
               else
                  dsConfirmBox(, "Die Testmail wurde an die Absendeadresse gesendet!" ;
                              + chr( xbeK_RETURN ) + "Bitte Posteingang prüfen", ;
                              "Prüfung erfolgreich", ;
                              {{BMP_PBOKAY, ""}}, ;
                              XBPMB_INFORMATION,,,,,.t.,,, {|oDlg| oDlg:TextOptions:=XBPSTATIC_TEXT_LEFT+XBPSTATIC_TEXT_VCENTER} )
               endif
               nCode := XseeClose(0)
            endif
         endif
      else
         nCode := XseeIntegerParam(0, SEE_SMTP_PORT, nPort)
         if nAuthenti == 1
            nCode := XseeIntegerParam(0, SEE_ENABLE_ESMTP, nAuthenti)
            nCode := XseeStringParam(0, SEE_SET_USER, @cUser)
            nCode := XseeStringParam(0, SEE_SET_SECRET, @cPassword)
         endif
         nCode := XseeIntegerParam(0, SEE_AUTHENTICATE_PROTOCOL, nVerschl)
         nCode := XseeSmtpConnect(0, @cServer, @cFrom, @cReply)
         if nCode < 0
            cTemp := SPACE(500)
            nCode := XseeErrorText(0,nCode,@cTemp,500)
            dsConfirmBox(, "Die Anmeldung am SMTP-Server war nicht möglich!" ;
                        + chr( xbeK_RETURN ) + "Fehlertext: " + Left( cTemp, nCode ), ;
                        "Prüfung fehlgeschlagen", ;
                        {{BMP_PBOKAY, ""}}, ;
                        XBPMB_CRITICAL,,,,,.t.,,, {|oDlg| oDlg:TextOptions:=XBPSTATIC_TEXT_LEFT+XBPSTATIC_TEXT_VCENTER} )
         else
      nCode := XseeIntegerParam(0, SEE_QUOTED_PRINTABLE, QUOTED_ISO_8859_1)
            cTo := cFrom
            nCode := XseeSendEmail(0,@cTo,@cEmptyStr,@cBcc,@cBetreff,@cMailtext,@cEmptyStr)
            if nCode < 0
               cTemp := SPACE(500)
               nCode := XseeErrorText(0,nCode,@cTemp,500)
               dsConfirmBox(, "Die Testmail konnte nicht gesendet werden!" ;
                           + chr( xbeK_RETURN ) + "Fehlertext: " + Left( cTemp, nCode ), ;
                           "Prüfung fehlgeschlagen", ;
                           {{BMP_PBOKAY, ""}}, ;
                           XBPMB_CRITICAL,,,,,.t.,,, {|oDlg| oDlg:TextOptions:=XBPSTATIC_TEXT_LEFT+XBPSTATIC_TEXT_VCENTER} )
            else
               dsConfirmBox(, "Die Testmail wurde an die Absendeadresse gesendet!" ;
                           + chr( xbeK_RETURN ) + "Bitte Posteingang prüfen", ;
                           "Prüfung erfolgreich", ;
                           {{BMP_PBOKAY, ""}}, ;
                           XBPMB_INFORMATION,,,,,.t.,,, {|oDlg| oDlg:TextOptions:=XBPSTATIC_TEXT_LEFT+XBPSTATIC_TEXT_VCENTER} )
            endif
            nCode := XseeClose(0)
         endif
      endif
      nCode := XseeRelease()
   endif

Wie ihr seht, habe ich auch schon experimentiert mit ConvToAANSICp() bei Usernamen und Passwort. Aber völlig egal, ob ich die Feldinhalte umwandeln lasse oder nicht: Es klappt nicht.
Das Log zeigt:
Code: Alles auswählen
*** seeIntegerParam(0,32,1)
*** seeSetProxySSL(0,1,'d:\Easydogw\','stunnel.pem','stunnel.exe')
*** seeIntegerParam(0,62,2)
*** seeSmtpConnectSSL(0,8801,465,'smtp.mail.yahoo.com','martin_altmann2001','*','<martin_altmann2001@yahoo.de>','',''
*** seeStringParam(0,58,'martin_altmann2001')
*** seeStringParam(0,57,*)
*** seeIntegerParam(0,29,1)
*** StartStunnel(0,'Smtp')
d:\Easydogw\stunnel.exe d:\Easydogw\SmtpConfig(0).txt
CreateProcess 0: pid=1480 thr=1476
Stunnel started (chan 0, process 0)
Connecting...
<200:574873031>
 VS Win32 Version 7.3.1 Build 2
SEE Win32 Version 7.3.1 Build 2
Altmann & Temming GbR                             
CID=...
<101:574873046>
vs: LogHandle = 1472
vSock 0 created (IP 0)
<102:574873046>
LocalHost = 'Cheffe'
<104:574873046>
Server = 'CHEFFE'
ServerIP = 192.168.178.38
<105:574873156>
vsConnect(0,'CHEFFE',8801) attempt 1
Socket=1484, RemoteIP=c0a8b226, RemotePort=8801
connect(1484) returns 0
Server has accepted the connection
<106:574873687>
<201:574873718>
recv(0)=37
R: 220 smtp.mail.yahoo.com ESMTP ready
<202:574873921>
S: EHLO yahoo.de
Delay 375 ms
<203:574874296>
recv(0)=115
R: 250-smtp.mail.yahoo.com
R: 250-PIPELINING
R: 250-SIZE 41697280
R: 250-8 BITMIME
R: 250 AUTH PLAIN LOGIN XOAUTH2 XYMCOOKIE
<160:574874296>
S: AUTH LOGIN
<162:574874546>
recv(0)=18
R: 334 VXNlcm5hbWU6
S: bWFydGluX2FsdG1hbm4yMDAx
<163:574874578>
recv(0)=18
R: 334 UGFzc3dvcmQ6
S: ****************
<164:574874843>
recv(0)=54
R: 535 5.7.0 (#MBR1212) Incorrect username or password.
ERROR(574877734): SockCode=0 SeeCode=-49 PrevState=164 ThisState=164 NextState=164
SMTP returned error. 535 5.7.0 (#MBR1212) Incorrect username or password.

SMTP returned error. 535 5.7.0 (#MBR1212) Incorrect username or password.
SMTP returned error. 535 5.7.0 (#MBR1212) Incorrect username or password.

*** seeRelease: Win32 11109 7.3.1 (2) ***
KillStunnel(0) pid=0
TerminateProcess 0: pid=1480 thr=1476
Stunnel killed (chan 0, process 0)
vSocket: 0 closed
*** Releasing channel 0 ***

Wo stelle ich mich wieder zu dumm an? :banghead:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13190
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon AUGE_OHR » Do, 07. Mai 2015 1:21

Frage : kommst du , mit einer andern Anwendung wie Outlook, auf Port 465 und SSL bei Yahoo rein ?
wenn nein versuche doch mal Port 587
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10305
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: See4Xb und SSL

Beitragvon Martin Altmann » Do, 07. Mai 2015 1:22

Habe es jetzt auch noch mal mit dem kompletten Verzeichnis der neuen STUNNEL-Version probiert (also den Eintrag für den SSLProxy entsprechend konfiguriert) - auch mit dem selben Ergebnis.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13190
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon Martin Altmann » Do, 07. Mai 2015 1:23

Jimmy,
die Einstellungen habe ich aus meinem Thunderbird-Client übernommen.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13190
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon Martin Altmann » Do, 07. Mai 2015 1:29

Äh - ich dachte eigentlich immer, dass ich bei <Strg>-<N> eine neue Nachricht sende und dabei die Einstellungen des Servers nehme, auf dem ich mich in der linken Liste in Thunderbird befinde.
Das klappt auch bei zweien - aber bei Yahoo sendet er (zumindest laut Anzeige in dem Dialogfenster) über einen anderen Server...
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13190
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon Martin Altmann » Do, 07. Mai 2015 1:41

Habe es jetzt auch mit ...yahoo.de beim Servernamen versucht und auch mit den beiden Ports - geht nicht.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13190
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon AUGE_OHR » Do, 07. Mai 2015 1:50

hm ... schon mal mit CDO probiert ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10305
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: See4Xb und SSL

Beitragvon Martin Altmann » Do, 07. Mai 2015 2:04

Ich möchte eigentlich kein ActiveX verwenden müssen.
Da andere keine Probleme mit See4Xb und SSL haben, muß ich wohl irgendwas falsch machen. Habe auch versatel und web.de als Accounts versucht - selbe Fehlermeldungen.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13190
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon AUGE_OHR » Do, 07. Mai 2015 2:45

Martin Altmann hat geschrieben:Ich möchte eigentlich kein ActiveX verwenden müssen.
solange Cdosys.dll auf jedem M$ OS() (auch Win 10.10071) vorhanden ist ...

es wird, zum versenden von Emails, nicht sonderlich viel "Power" benötigt und wenn du keine Events empfängst ( CreateObject ) kannst du auch DispHPR aus ot4xb nutzen.
Martin Altmann hat geschrieben:Da andere keine Probleme mit See4Xb und SSL haben, muß ich wohl irgendwas falsch machen. Habe auch versatel und web.de als Accounts versucht - selbe Fehlermeldungen.
wenn du auch WEB.DE nicht erreichst stimmt wohl wirklich was mit SSL nicht ...
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10305
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: See4Xb und SSL

Beitragvon brandelh » Do, 07. Mai 2015 7:27

martin_altmann2001 ist das dein user name ?
bei gmx und web.de muss ich entweder die Kundennummer eingeben oder dei komplette eMail-Adresse
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13483
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: See4Xb und SSL

Beitragvon Scarmo » Do, 07. Mai 2015 9:26

Hallo Martin

Also Dein Code sieht korrekt aus. Deshalb tippe ich ebenfalls darauf, dass als Benutzername bei Yahoo die komplette Email-Adresse verwendet werden sollte (also inkl. @Domain).

Grüsse
Marco
Benutzeravatar
Scarmo
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 129
Registriert: Di, 24. Jul 2007 9:17

Re: See4Xb und SSL

Beitragvon Martin Altmann » Do, 07. Mai 2015 9:41

Moin,
habe ich auch versucht. Ging auch nicht. Auch nicht mit anderen Providern.
Ich habe STUNNEL nirgends konfiguriert gehabt - einfach nur die Zip ausgepackt und fertig! Hatte zumindest die SEE4XB-Doku so verstanden, dass sie sich um alles selber kümmern. Ist dem so? Kann es nicht sein, dass dort das Problem liegt? Das vielleicht mit der Verschlüsselung was nicht klappt und deshalb die logindaten vermeintlich falsch sind?
In welcher Codepage erwartete SEE4XB denn die Anmeldedaten als Parameter? OEM oder ANSI?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13190
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon brandelh » Do, 07. Mai 2015 10:14

oem oder ansi spielt keine rolle solange du keine Umlaute oder (> 128) verwendest.
Stunnel braucht man nicht konfigurieren, aber in deiner prg das automatische konfigurieren einschalten und dll/exe Verzeichnis angeben. Oben habe ich ein Beispiel aufgeführt, wobei das ja wieder ewig her ist ...
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13483
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: See4Xb und SSL

Beitragvon Martin Altmann » Do, 07. Mai 2015 10:23

Hubert,
das automatische Konfigurieren nutze ich ja.
Bezüglich Sonderzeichen: Ich kenne die Passwörter meiner Kunden nicht ;-)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13190
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: See4Xb und SSL

Beitragvon brandelh » Do, 07. Mai 2015 10:29

richtig.

Da es eine standard dll ist, vermute ich Ansi, aber Hersteller fragen ist sicherer ...
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13483
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: See4Xb und SSL

Beitragvon Scarmo » Do, 07. Mai 2015 11:03

Hallo Martin

Ich habe folgende Stunnel-Versionen im Einsatz:

- stunnel.exe 15.10.2014 119296
- stunnel.html 15.10.2014 40186
- stunnel.pem 04.01.2012 2936
- libeay32.dll 15.10.2014 1397248
- ssleay32.dll 15.10.2014 274432

Hast Du auch diese Versionen im Einsatz? Zudem muss stunnel nicht installiert werden, sondern es reicht, dass die Dateien im entsprechenden Verzeichnis vorhanden sind.

Gruss
Marco
Benutzeravatar
Scarmo
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 129
Registriert: Di, 24. Jul 2007 9:17

Re: See4Xb und SSL

Beitragvon Martin Altmann » Do, 07. Mai 2015 11:38

Marco,
ja.
Aber es wird immer verrückter! Habe mal die mailssl.prg von Marshallsoft mit den selben Parametern bestückt, die ich in meinem Programm angegeben habe. Funzt!!
Habe daraufhin die sourcen verglichen und noch einige Anpassungen bei mir vorgenommen. Funzt nicht! Selbst wenn ich auf das selbe Unterverzeichnis für die STUNNEL-Konfig verweise.
Wenn ich mir die beiden Logs ansehe, sind diese (inzwischen) identisch (außer den Prozess-IDs natürlich und auch nur bis zur Anmeldung am SMTP-Server - danach geht es ja bei dem einen weiter und der andere wird abgewiesen).
Hatte in meinem Programmverzeichnis selber noch ein paar alte DLLs gefunden (libeay32.dll, libssl32.dll, ssleay32.dll) - aber auch nach dem Entfernen dieser Dateien geht es nicht!
Bezüglich der Parameter User, From und Passwort: Habe schon alle drei Varianten versucht (ConvToANSICp, ConvToOEMCP, und nichts) - kein Unterschied.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13190
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Nächste

Zurück zu Andere 3rd-Party-Tools

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron