Mailversand in VO 2.8 mit cEmail

Deutschsprachiges X#-Forum – German language forum

Moderator: wriedmann

lagraf
Posts: 442
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Mailversand in VO 2.8 mit cEmail

Post by lagraf »

Hallo Dick,
durch Einsatz der Internet SDK IC2 habe ich jetzt ein neues Problem: Der Anhang (z.B. RE20200601.PDF) bekommt immer den Dateinamen Teil1.2 anstelle des originalen Namens. Lt. Doku müßte der Dateiname defaultmäßig der Name des Anhangs sein. Selbst wenn ich mit

Code: Select all

oEmail:AddAttachment(cPdf,,,"TEST.PDF")
den Namen des Anhangs explizit benenne, heißt er trotzdem Teil1.2. Wenn man den Anhang speichert und umbenennt, kann man das PDF ganz normal öffnen, aber ein direkter Klick auf den Anhang ist den Kunden dadurch verwehrt.
LG Franz
lagraf
Posts: 442
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Mailversand in VO 2.8 mit cEmail

Post by lagraf »

Frage in diesem Zusammenhang:
Wenn ich den Wen/Wed Fehler in der Internet SDK ausbessere, kann ich dann wieder eine Internet Lib erstellen, die mir die originale Lib überschreibt oder kann ich nur die ausgebesserte Internet SDK ins Prog einbinden?
Karl-Heinz
Posts: 774
Joined: Wed May 17, 2017 8:50 am
Location: Germany

Mailversand in VO 2.8 mit cEmail

Post by Karl-Heinz »

Hallo Franz,

Versuche es doch einfach mit einer von cEmail abgeleiteten Klasse. Wie erwähnt habe ich kein SP4 SDK,
aber anhand des X# SP4 SDK müsste das hier eigentlich funktionieren.

Code: Select all

CLASS Fix_cEmail INHERIT CEmail

METHOD SetMailTime() CLASS Fix_cEmail 
    SELF:dDate  := Today()
    SELF:cTime  := Time()
    SELF:cTimeStamp := Fix_GetMailTimeStamp(TRUE)	// force the date format to be British
    RETURN .T.

FUNCTION Fix_GetMailTimeStamp(lForceUK AS LOGIC)  AS	STRING

 füge hier die GetMailTimeStamp() sourcen ein und ändere dann "Wen" zu "Wed".

Gruß
Karl-Heinz
lagraf
Posts: 442
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Mailversand in VO 2.8 mit cEmail

Post by lagraf »

Hallo Karl-Heinz,
genau das habe ich vor einer halben Stunde auch gemacht, denn bis auf den "Mittwoch-Bug" funktionierts mit der alten Internet Lib ja. Und der Fehler ist sicher einfacher zu beheben wie das Attachment-Problem mit dem Filenamen "Teil1.2".
LG und Dank an alle!
ic2
Posts: 1841
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Mailversand in VO 2.8 mit cEmail

Post by ic2 »

Hallo Franz,
lagraf wrote:Hallo Dick,
durch Einsatz der Internet SDK IC2 habe ich jetzt ein neues Problem: Der Anhang (z.B. RE20200601.PDF) bekommt immer den Dateinamen Teil1.2 anstelle des originalen Namens. Lt. Doku müßte der Dateiname defaultmäßig der Name des Anhangs sein. Selbst wenn ich mit

Code: Select all

oEmail:AddAttachment(cPdf,,,"TEST.PDF")
den Namen des Anhangs explizit benenne, heißt er trotzdem Teil1.2. Wenn man den Anhang speichert und umbenennt, kann man das PDF ganz normal öffnen, aber ein direkter Klick auf den Anhang ist den Kunden dadurch verwehrt.
LG Franz
Gut, dass der Fehler behoben ist, aber ich kann mich nicht erinnern, dass wir bei Verwendung des Ersatz-SDK dieses Problem aufgetreten war. Möglicherweise haben wir doch eine andere Version. Wenn es beim Senden von E-Mails weitere Probleme gibt, frage dann unsere SDK-Quelle. Selbst wenn das integriertes SDK nicht ersetzt werde (=einbinden ersatz SDK statt VO SDK via Libs/Included) , kann einen Vergleich gemacht werde, um festzustellen, welche Probleme darin gelöst wurden.

Dick
lagraf
Posts: 442
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Mailversand in VO 2.8 mit cEmail

Post by lagraf »

Hallo Dick,
kann ich irgendwo erkennen, welche Version meine Internet SDK IC2 ist? Oder schick mir bitte deine Lib an office@rachbauer.org, dann probiere ich damit aus, ob der Anhang damit immer noch Teil1.2 heißt.
LG Franz
g.bunzel@domonet.de
Posts: 97
Joined: Tue Mar 01, 2016 11:50 am
Location: Germany

Mailversand in VO 2.8 mit cEmail

Post by g.bunzel@domonet.de »

Franz,

mit Windows kann auch ein OLE-Object für den Mailversand genutzt werden. Damit ist auch SSL und ExchangeServer möglich.
Nachfolgend etwas Beispielcode - da sind einige Textstellen für verschiedene Optionen ausmarkiert. Habe ich nicht vollständig getestet - funktioniert aber für 'normale' Mail problemlos.
Weitere Infos dazu findest Du bei google.

HTH

Gerhard Bunzel


FUNCTION CDOSendMail (cFrom AS STRING, cTo AS STRING, cSmtp AS STRING, cUserID AS STRING, cPwd AS STRING, dPort AS DWORD, lSSL AS LOGIC, cSubject AS STRING, cBody AS STRING) AS LOGIC PASCAL

LOCAL objMessage AS OBJECT
LOCAL objConfiguration AS OBJECT

LOCAL cdoSendUsingPickup AS DWORD
LOCAL cdoSendUsingPort AS DWORD
LOCAL cdoAnonymous AS DWORD
LOCAL cdoBasic AS DWORD
LOCAL cdoNTLM AS DWORD
//LOCAL cHtml AS STRING

cdoSendUsingPickup := 1 // Send message USING the LOCAL SMTP service pickup directory
cdoSendUsingPort := 2 // Send the message USING the network (SMTP over the network)
cdoAnonymous := 0 // DO not authenticate
cdoBasic := 1 // basic (clear-TEXT) authentication
cdoNTLM := 2 // NTLM - If you are using Exchange Server on a Domain, you may require NTLM (2).


objMessage := OLEAutoObject{"CDO.Message"}
objConfiguration := objMessage:Configuration

// IF you are running Exchange Server, you may need to use 3 (SendUsingExchange).
// 2-SendUsingPort 3-SendUsingExchange 1-SendUsingPickup
objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... /sendusing"] := 2

// Name or IP OF Remote SMTP Server
objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... smtpserver"] := cSmtp

// objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... ccountname"] := cAcctName
// objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... ailaddress"] := cSMTPEmail

// Type OF authentication, NONE, Basic (Base64 encoded), NTLM
objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... thenticate"] := cdoBasic
//objMessage:Configuration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... thenticate"] := NONE

// Your UserID on the SMTP server
objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... ndusername"] := cUserID

// Your password on the SMTP server
objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... ndpassword"] := cPwd

// Server port (typically 25 - with SSL: 465 )
objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... serverport"] := dPort

// Use SSL FOR the connection (FALSE or TRUE)
objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... smtpusessl"] := lSSL

// Connection Timeout in Seconds (the maximum time CDO will try TO establish a connection TO the SMTP server)
objConfiguration:Fields:[Item, "http://schemas.microsoft.com/cdo/config ... iontimeout"] := 60
objConfiguration:Fields:Update()

// oCDOMsg:Configuration := oCDOConf
// objMessage:BodyPart:Charset := "utf-8"

objMessage:Subject := cSubject
objMessage:From := cFrom
objMessage:@@TO := cTo
// IVarPut(objMessage,#TO,cTo)
// oMsg.CC = cCC
// oMsg.BCC = cBCC

objMessage:TextBody := cBody

/***** To send HTML body, uncomment the following lines:
cHtml := "<HTML>n" + ;
"<HEAD>n" + ;
"<TITLE>Sample GIF</TITLE>n" + ;
"</HEAD>n" + ;
"<BODY><P>n" + ;
"<h1><Font Color=Green>Inline graphics</Font></h1>n" + ;
"</BODY>n" + ;
"</HTML>"

oder:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
</BODY>
<DIV>
<IMG SRC="file://D:/some/path/image.jpg">
</DIV>
</BODY>
</HTML>

objMessage:HTMLBody := cHtml
***********/

/**** To send WEB page in an e-mail, uncomment the following lines and make changes in TODO section.
TODO: Replace with your preferred Web page
CreateMHTMLBody(
BSTR URL,
CdoMHTMLFlagsFlags=cdoSuppressNone,
BSTR UserName,
BSTR Password)
CdoSuppressNone := 0 Download all resources referred to in elements within the resource at the specified Uniform Resource Identifier (URI) (not recursive).
oMsg.CreateMHTMLBody("http://www.microsoft.com", CDO.CdoMHTMLFlags.cdoSuppressNone, "", "")
oMsg.Subject = "Test SMTP"
**********/

objMessage:AddAttachment( "D:MyTestDokument1.pdf" )
// objMessage:AddAttachment( cDokument2 )
objMessage:Send()
objMessage:Destroy()

RETURN TRUE
ic2
Posts: 1841
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Mailversand in VO 2.8 mit cEmail

Post by ic2 »

Hallo Franz,

Habe ich gleich geschickt heutemittag.

Dick
ic2
Posts: 1841
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Mailversand in VO 2.8 mit cEmail

Post by ic2 »

Hallo Gerhard,
g.bunzel@domonet.de wrote:Franz,

mit Windows kann auch ein OLE-Object für den Mailversand genutzt werden. Damit ist auch SSL und ExchangeServer möglich.
Wir haben Chilkat dafür gekauft aber Exchange functioniert nur mit dem POP3, IMAP und/oder SMTP Protokols eingeschaltet. Sollte dass auch so sein mit dem CDOSendMail Funktion?

Dick
lagraf
Posts: 442
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Mailversand in VO 2.8 mit cEmail

Post by lagraf »

Hallo Dick,
bei der neuen Version deiner Internet SDK IC2 wird der Name des Anhangs korrekt dargestellt! Da dürfte also doch ein Bug in meiner älteren Version drin gewesen zu sein.
LG Franz
Post Reply