Seite 2 von 2
Re: Email Lesen
Verfasst: Mi, 22. Jun 2016 15:48
von Rolf Ramacher
Hallo Werner
ja sieht gut aus. bin aber noch beim testen. Hierbei erhalte ich 2 arten von email-absendern
1x mit name davor und dann die email-adresse. z.b. "Rolf.Ramacher"< - email-adresse.de >
ich bekommen aber das Zeichen ">" nicht weg
die andere ist korrekt kein Problem
Code: Alles auswählen
nStartPos:= AT("<",cHeader)
If nStartPos >0
nEndPos:=At(">",cHeader)
cAbsEmail:=substr(cHeader,nStartPos+1,nEndPos-1)
Else
cAbsEmail:=alltrim(cHeader)
Endif
cHeader ist auch schon alltrim
Re: Email Lesen
Verfasst: Mi, 22. Jun 2016 16:43
von Rolf Ramacher
ich bin am verzweifeln.
ich bin dabei die Absende email zu identifizieren ob diese zulässig ist oder nicht. diese hat immer 1 Leerstelle mehr als von mir vorgegebene mit alltrim - Rtim funtk. alles nicht.
auch habe ich beim lesen der email-adresse den Buffer auf 255 gesetzt nichts..
Re: Email Lesen
Verfasst: Mi, 22. Jun 2016 16:53
von brandelh
SubStr( <cString>, <nStart>, [<nCount>]) --> cSubString
Substr will in nCount die Anzahl Zeichen, die du entfernen möchtest, du gibst aber den Position im kompletten String an !
Entweder vorteilen oder den Startwert abziehen
so sollte das stimmen, aber es ist heiß hier ... also ohne Gewähr
Code: Alles auswählen
cAbsEmail:=substr(cHeader,nStartPos+1,nEndPos-1-nStartPos)
Re: Email Lesen
Verfasst: Mi, 22. Jun 2016 17:47
von Rolf Ramacher
so ich habe es wohl gelöst - beim lesen der email wird immer 1 Zeichen mehr gelesen. alltrim nützt hierbei auch nichts. Len-1 dann gehts.
Re: Email Lesen
Verfasst: Mi, 22. Jun 2016 17:57
von brandelh
Rolf Ramacher hat geschrieben:so ich habe es wohl gelöst - beim lesen der email wird immer 1 Zeichen mehr gelesen. alltrim nützt hierbei auch nichts. Len-1 dann gehts.
sieh dir mal meinen Beitrag zuvor an
"<
V.N@gmx.de>" => ich zähle 12 Zeichen insgesamt
nStartPos:= AT("<",cHeader) => nStartPos = 1
nEndPos:=At(">",cHeader) => nEndPos = 12 das letzte Zeichen
erstes Zeichen der eMail: nStartPos+1 => 2 stimmt
letztes Zeichen der eMail im String ! nEndPos-1 => 11 stimmt auch, aber Länge ist 10 1
nLen := nEndPos-1 - nStartPos => 10
wenn vor dem "<" noch ein Name stehen würde, würde ein einfaches -1 nicht reichen, dann muss man das wie beschrieben dynamisch berechnen.
Re: Email Lesen
Verfasst: Do, 23. Jun 2016 9:17
von Rolf Ramacher
guten Morgen - Hubert
danke der Hinweis war gut. Nur ohne die "-1"
ich denke jetzt scheint alles OK zu sein.
Re: Email Lesen
Verfasst: Do, 23. Jun 2016 9:21
von Jan
Ich würde da verutlich aus purer Bequemlichkeit einfach ein StrTran(cMailadresse, ">", "") drauf laufen lassen. Dann muß ich nicht mit Längen und Positionen rumrechnen.
Jan
Re: Email Lesen
Verfasst: Do, 23. Jun 2016 9:39
von brandelh
Jan, so einfach ist das nicht, die exakte eMail-Adresse steht zwischen "<" und ">", aber davor kann ein Alias stehen: "Donald <
d.duck@m.com>" ...
eventuell sortiert SEE das aus, aber verlassen würde ich mich nicht darauf.
Re: Email Lesen
Verfasst: Fr, 24. Jun 2016 12:30
von Rolf Ramacher
so ich wollte das Modul auf meinem Cloud-Bereich laufen lassen. keine Änderung im prg oder stunnel vorgenommen
windows Server 2012 R2
Code: Alles auswählen
Kode = XseeSetProxySSL(0, 1, @cProxyDir, @cProxyCert, @cProxyExe)
aber hierbei erhält er den Error-Code -77
d.h. kann kein proxy wohl aufbauen. Hat jemand eine Idee? Internetverbindung ist sauber
Re: Email Lesen
Verfasst: Fr, 24. Jun 2016 12:48
von Werner_Bayern
Rolf Ramacher hat geschrieben:aber hierbei erhält er den Error-Code -77
d.h. kann kein proxy wohl aufbauen. Hat jemand eine Idee? Internetverbindung ist sauber
Email-Port in der Firewall offen?
Re: Email Lesen
Verfasst: Mi, 29. Jun 2016 11:17
von Rolf Ramacher
Hallo zusammen,
@Werner
Code: Alles auswählen
Kode = XseeSetProxySSL(0, 1, @cProxyDir, @cProxyCert, @cProxyExe)
msgbox(var2lchar(kode))
hierbei kommt ein - Minus Wert zurück. deshalb steigt er aus. Windows-Server 2012 R2 Win 10 - liegt es an der Windowsfirewall ? mein Cloud-Anbieter konnte mir nicht helfen. Hat jemand von euch eine Idee warum das geblockt wird ????
Re: Email Lesen
Verfasst: Mi, 29. Jun 2016 15:52
von Rolf Ramacher
wo finde ich den Port denn in der Firewall. ich sehe ihn nicht. muss ich eine ausgehende Regel hierfür starten ??
Re: Email Lesen
Verfasst: Mi, 29. Jun 2016 23:55
von Werner_Bayern
Servus Rolf,
sorry, hab ihn mit dem Fehlercode -72 verwechselt, den hatte ich neulich mal auf einem Server, der total abgeschottet war (Firewall).
Ein Blick in die Doku von see4xb zeigt: -77 steht für SEE_NO_SUCH_PATH.
Also ganz einfach, prüfe dein PROXYDIR!
Re: Email Lesen
Verfasst: Do, 30. Jun 2016 14:26
von Rolf Ramacher
Hallo Werner
danke das wars. funkt.
Re: Email Lesen
Verfasst: Mo, 25. Jul 2016 11:39
von Rolf Ramacher
Hallo zusammen,
ich habe ein problem beim versenden der email - das erste mal alles astrein sauber . das 2.te mal senden
kommt Fehlercode -36 connecting zum proxy-server
??????
hier ist aber auch nichts verändert worden.
Code: Alles auswählen
? "*** 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
if File("fehler.log")
cLog:=memoread("fehler.log")
endif
cLog+=alltrim(str(nCode))+" checkfile"+CRLF
memowrit("fehler.log",cLog)
return
endif
nCode = CheckFileList(cAttachment)
if nCode = 0
if File("fehler.log")
cLog:=memoread("fehler.log")
endif
cLog+=alltrim(str(nCode))+" checkfileliste attach"+CRLF
memowrit("fehler.log",cLog)
return
endif
* Enable quoting
nCode = XseeIntegerParam(0, SEE_QUOTED_PRINTABLE, QUOTED_PLAIN)
* connect to SMTP server
* pass SMTP proxy server info to SEE
Kode = XseeSetProxySSL(0, nFlags, @cProxyDir, @cProxyCert, @cProxyExe)
if Kode < 0
if File("fehler.log")
cLog:=memoread("fehler.log")
endif
cLog+=alltrim(str(nCode))+" SMTP Proxy-fehler"+CRLF
memowrit("fehler.log",cLog)
ShowError(Kode)
return
else
? "Proxy parameters set"
endif
? "Connecting to proxy server on port " + LTrim(Str(nProxyPort))
nCode = XseeSmtpConnectSSL(0, nProxyPort, nSmtpPort, @cSmtpServer, @cSmtpUser, @cSmtpPass, @cSmtpFrom, @cSmtpReply, Chr(0))
if nCode < 0
if File("fehler.log")
cLog:=memoread("fehler.log")
endif
cLog+=alltrim(str(nCode))+" Proxy connecting"+CRLF
memowrit("fehler.log",cLog)
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()
Ferase("empf_mail.txt")
aFile:=Directory(cVerz+"\export\*.csv")
For i = 1 to Len(aFile)
cSendfile:=aFile[i][1]
cZeit:=dtos(date())
cZeit+=Time()
FRename( (cVerz+"\export\"+cSendfile), (cVerz+"\export\"+cSendfile+".sen"))
Next i
aFile:=Directory(cVerz+"\export\*.dbf")
For i = 1 to Len(aFile)
cSendfile:=aFile[i][1]
cZeit:=dtos(date())
cZeit+=Time()
FRename( (cVerz+"\export\"+cSendfile), (cVerz+"\export\"+cSendfile+cZeit+".sen"))
Next i
Re: Email Lesen
Verfasst: Di, 26. Jul 2016 0:11
von Werner_Bayern
Servus Rolf,
in welcher Zeile kommt denn die Fehlermeldung? Schon mal alles im Debugger angeschaut?
Re: Email Lesen
Verfasst: Di, 26. Jul 2016 10:43
von Rolf Ramacher
Hallo Werner
der Fehler tritt hierbei auf
Code -.36
Code: Alles auswählen
nCode = XseeSmtpConnectSSL(0, nProxyPort, nSmtpPort, @cSmtpServer, @cSmtpUser, @cSmtpPass, @cSmtpFrom, @cSmtpReply, Chr(0))
Re: Email Lesen
Verfasst: Di, 26. Jul 2016 21:38
von Werner_Bayern
Servus Rolf,
ich hab aus Deinem Code ein Testprogramm gemacht, läuft mehrmals einwandfrei durch. Was auffällt:
Code: Alles auswählen
* pass SMTP proxy server info to SEE
Kode = XseeSetProxySSL(0, nFlag, @cProxyDir, @cProxyCert, @cProxyExe)
Was übergibst Du in nFlag?
Re: Email Lesen
Verfasst: Mi, 27. Jul 2016 8:49
von Rolf Ramacher
Hallo Werner
war schon so im original enthalten.
Re: Email Lesen
Verfasst: Mi, 27. Jul 2016 17:42
von Rolf Ramacher
Hi Werner
ich bin zur Zeit vollkommen verwirrt. mal läufts mal läuft es nicht. es soll einAustausch zwischen client- und meinem cloud server gehen. es muss irgendwie mit der email-adresse zusammen hängen
den ganzen Tag hat es lokal funkt. nicht immer auf cloud. jetzt lokal auch nicht mehr.
Re: Email Lesen
Verfasst: Do, 28. Jul 2016 11:21
von Rolf Ramacher
Hi Werner
ich glaube ich habe die Ursache gefunden. Wenn ich SSL-Tunnel bereits durch empfangen nutze, kann ich vermutlich SSL-Tunnel nicht gleichzeitig zum versenden nutzen?
Re: Email Lesen
Verfasst: Fr, 29. Jul 2016 0:01
von Werner_Bayern
Servus Rolf,
doch, das müsste gehen, dafür gibt es ja die Channel-Number in xsee. Startest Du stunnel jeweils extra?
Ansonsten: Einfach testen.