Doc Datei als Mail

Einbindung von Office-Komponenten wie Word, Excel usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2452
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 76 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Doc Datei als Mail

Beitrag von Koverhage »

Habe die Anforderung bekommen, Briefe (DOC Dokumente) die bisher ausschließlich gedruckt wurden, als Mail zu verschicken wenn eine Mail Adresse hinterlegt ist.
Normal dürfte das relativ einfach sein habe aber in der Beschreibung zur SendMail Methode nur

Options.SendMailAttach = True // True als Anhang, False als Nachrichtentext
ActiveDocument.SendMail

das gefunden.
Wie kann ich die E-Mail Adresse des Empfängers setzen ?
Hat das schon jemand gemacht ?
Gruß
Klaus
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 435
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 7 Mal

Re: Doc Datei als Mail

Beitrag von azzo »

Hallo Klaus,

Code: Alles auswählen

 HARBOUR code 
oWord:Documents:Open( cDocName, 0 , 0 )    //readonly 3. parameter 1
    
      oDoc := oWord:ActiveDocument
      oWord:Visible := .t.
      
      oWord:WindowState := 1
      oWin := oWord:Get( "ActiveWindow" )

         if VALType( cEMAIL ) = "C"
            if len(ALLTRIM( cEMAIL ) ) > 0
               oWin:Set( "EnvelopeVisible", .t. )
               oDoc:MailEnvelope:Item:Subject = cBetreff
               oDoc:MailEnvelope:Item:Recipients:Add( cEMAIL )
            endif
         endif
		TRY
      
      CATCH
      MsgInfo( "Es gibt ein Problem mit dem WORDDOKUMENT: " + cDocPfad  + "\" +  cDocName )
   	END

LG
Otto
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 435
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 7 Mal

Re: Doc Datei als Mail

Beitrag von azzo »

Hallo Klaus,
bin mir nicht sicher, ob es diese Einträge noch braucht.
Error Word.Application:ACTIVEDOCUMENT:MAILMERGE/3 DISP_E_MEMBERNOTFOUND: EXECUTE
I resolved by changing the registry key:

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options
"SQLSecurityCheck" = dword: 000000001.Registrierungs-Editor starten.

no file conversion message box in Word 2010 in merge text
HKEY_CURRENT_USER\Software\Microsoft \Office\12.0\Word\Options
DefaultCpg"=dword:0000fde9 für UTF8
LG
Otto
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2452
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 76 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Koverhage »

Hallo Otto,
danke für den Code. Werde es probieren.
Gruß
Klaus
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2881
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Wolfgang Ciriack »

Ich bin ja der Meinung, man sollte die Word-Dokumente nicht per Mail versenden, lieber als PDF.
Kann man ja über ActiveX machen, Dokument öffnen und als PDF speichern.
Oder gleich den gesamten Text aus dem Word-Dokument in eine Mail einfügen.
Viele Grüße
Wolfgang
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 435
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 7 Mal

Re: Doc Datei als Mail

Beitrag von azzo »

Hallo Wolfgang,
Wir senden die Hotelangebote über OUTLOOK von WORD aus.
Wir haben festgestellt, dass PDFs oft nicht geöffnet werden, da die Empfänger Angst habe.
Auch wissen manche Empfänger nicht, wie man ein PDF am Handy öffnen kann.
LG
Otto
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16163
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 73 Mal
Danksagung erhalten: 43 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Martin Altmann »

Ich kann Wolfgang nur zustimmen:
Word-Dokumente per Mail zu versenden ist aus sicherheitstechnischer Sicht mindestens grob fahrlässig!

Viele Grüße,
Martin
:grommit:
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.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8970
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 65 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Tom »

So'n Quatsch. Mit den richtigen Sicherheitseinstellungen und -systemen stellt das heutzutage wirklich kein Problem mehr dar, und wenn man gemeinsam an einem Dokument arbeiten möchte, ist PDF einfach keine gute Wahl. 8)
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16163
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 73 Mal
Danksagung erhalten: 43 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Martin Altmann »

Es geht hier nicht um interne oder abgestimmte Kommunikation - sondern sicherlich um Rechnungen.
Und ich rede hier auch nicht um die Übertragung der Datei per Vershclüsselung/gesichert. Das ist nicht das Problem an sich (und würde auch keinen Unterschied machen zu einer ungesicherten Übertragung einer PDF-Datei).
Ich rede von dem Dateiformat an sich:
  • Metadaten
  • Briefpapier
Alles leicht änderbar/abgreifbar/auswertbar.

Viele Grüße,
Martin
:grommit:
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.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8970
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 65 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Tom »

Hallo, Martin.

Es geht um Briefe, steht jedenfalls in der Ausgangsnachricht. Wenn gewünscht ist, das im DOC/X-Format zu schicken, ist der Verweis auf PDF sicher nicht falsch, aber auch nicht unbedingt hilfreich. Vor allem dann nicht, wenn die Bearbeitbarkeit der Dokumente erforderlich ist. Ansonsten käme ich auch im Traum nicht auf die Idee, sowas wie Serienbriefe als Mailanhang im Word-Format zu versenden. Da hast Du recht mit Deinen Anmerkungen - aus Perspektive der Dokumentensicherheit ist das ein No-Go.

Aber, wie gesagt, wenn es notwendig ist, weil das infrastrukturell erfordert wird, dann geht auch das. Das Risiko von Schäden durch Schadsoftware in Officemakros ist in einer ordentlich strukturierten IT minimal.
Herzlich,
Tom
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2452
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 76 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Koverhage »

Wolfgang,
Oder gleich den gesamten Text aus dem Word-Dokument in eine Mail einfügen.
Nicht anderes habe ich geschrieben und gewollt,
Das Teil soll als Serienbrief laufen, wobei wie sollte das funktionieren ? (Tip erwünscht)
Es gibt Word >Dokumente mit Textmarken, die ersetzt werden und eben anstatt gedruckt per Mail versendet werden sollen.
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2452
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 76 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Koverhage »

Martin
das ist schon wieder mal eine falsche Vermutung von Dir.
1. Rechnungen werden bei uns (nicht wie eventuell bei Dir) per Word erstellt.
2. Wenn Rechnungen per Mail verschickt werden, passiert das ausschließlich mit PDF Rechnungen.
3. Aus Datenschutzgründen werden diese auch noch mit einem Kennwort versehen.
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2452
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 76 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Koverhage »

Tom,
die Daten sollen nicht bearbeitet werden.
Hier geht es z.B. um Terminankündigungen.
Es gibt Word >Dokumente mit Textmarken, die ersetzt werden und eben anstatt gedruckt per Mail versendet werden sollen.
Gruß
Klaus
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2881
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Wolfgang Ciriack »

Hallo Klaus,

ich würde das Dokument mit ActiveX öffnen, Textmarken ersetzen, gesamten Text markieren und dann als html oder nur Text speichern.
Hier mal als Beispiel ein Word Dokument öffnen und in PDF abspeichern.
Du müsstest natürlich abändern in nicht schreibgeschützt öffnen, Textmarken ersetzen ändern, dann als HTML speichern.

Code: Alles auswählen

#define wdFormatDocument                 0        // Microsoft Office Word format.
#define wdFormatDocument97               0        // Microsoft Word 97 document format.
#define wdFormatTemplate                 1        // Word template format.
#define wdFormatTemplate97               1        // Word 97 template format.
#define wdFormatText                     2        // Microsoft Windows text format.
#define wdFormatTextLineBreaks           3        // Windows text format with line breaks preserved.
#define wdFormatDOSText                  4        // Microsoft DOS text format.
#define wdFormatDOSTextLineBreaks        5        // Microsoft DOS text with line breaks preserved.
#define wdFormatRTF                      6        // Rich text format (RTF).
#define wdFormatEncodedText              7        // Encoded text format.
#define wdFormatUnicodeText              7        // Unicode text format.
#define wdFormatHTML                     8        // Standard HTML format.
#define wdFormatWebArchive               9        // Web archive format.
#define wdFormatFilteredHTML            10        // Filtered HTML format.
#define wdFormatXML                     11        // Extensible Markup Language (XML) format.
#define wdFormatXMLDocument             12        // XML document format.
#define wdFormatXMLDocumentMacroEnabled 13        // XML document format with macros enabled.
#define wdFormatXMLTemplate             14        // XML template format.
#define wdFormatXMLTemplateMacroEnabled 15        // XML template format with macros enabled.
#define wdFormatDocumentDefault         16        // Word default document file format. For Microsoft Office Word 2007, this is the DOCX format.
#define wdFormatPDF                     17        // PDF format.
#define wdFormatXPS                     18        // XPS format.

   if ValType(oWord := CreateObject('Word.Application')) == 'O'
         oWord:Visible := .F.
         ** Dokument schreibgeschützt öffnen, falls in Bearbeitung
         oWord:Documents:Open(Datei, .F., .T.)
         oDoc := oWord:ActiveDocument
         oDoc:Saveas(cSaveFile, wdFormatPDF)
         oDoc:Close()
         oWord:Quit()
         oDoc:Destroy()
         oWord:Destroy()
In deine Mail dann Text/Html einfügen:

Code: Alles auswählen

** nur Text:  oMail:encodeQuotedPrintable(Text, "text/plain")
** Html:  oContHtml := MimeContent():encodeQuotedPrintable(alltrim(TextHtml), "text/html") ; oMail:attachAlternative(oContHtml)
Viele Grüße
Wolfgang
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2452
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 76 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Koverhage »

Wolfgang,
so mache ich das ja bisher schon. Nur soll eben anstatt des Ausdrucks auf den Drucker das Dokument als E-Mail Text versendet werden.
Das Hatte ich ja in meinem Eingangspot schon geschrieben.
Gruß
Klaus
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 435
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 7 Mal

Re: Doc Datei als Mail

Beitrag von azzo »

Hallo Klaus,
vielleicht helfen dir meine Notizen?

Code: Alles auswählen


 wdSendToEmail  2 Send results to e-mail recipient.
 wdSendToFax   3  Send results to fax recipient.
 wdSendToNewDocument   0  Send results to a new Word document.
 wdSendToPrinter   1  Send results to a printer.
I resolved my problem:

"File block setting" setup in WINWORD was wrong.

Best regards,
Otto

--------------------------------------------------------------------------------

Re: wordtable.prg sample

Postby Otto » Sun Apr 28, 2013 9:02 am 

MAILMERGE

The next error:
Error description: Error Word.Application:ACTIVEDOCUMENT:MAILMERGE/3 DISP_E_MEMBERNOTFOUND: EXECUTE
I resolved by changing the registry key:

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options 
"SQLSecurityCheck" = dword: 000000001.Registrierungs-Editor starten.




function mailsend(oBrw)
   LOCAL cLetter   := ""
   LOCAL oWord
   LOCAL cAppPath   :=""
   LOCAL oDoc

   cAppPath   := cFilePath( GetModuleFileName( GetInstance( ) ) )
   cLetter    := ALLTRIM(cAppPath +  oBrw:aArrayData[oBrw:nArrayAt,1])
   msginfo(cLetter)
   oWord := CREATEOBJECT( "Word.Application" )

   IF FILE(cLetter)
      oDoc := oWord:Documents:Open( cLetter )
      oWord:Visible = .T.

      oDoc:MailMerge:MainDocumentType:=0        //wdFormLetters=0  // sets the mail merge main document type

      //.OpenDataSource Name:=cDatenQuelle

      oDoc:MailMerge:EditMainDocument()
      // oDoc:MailMerge:Destination:=2                    //wdSendToEmail = 2   //See Word Enumerated Constants: http://msdn.microsoft.com/en-us/library/aa211923.aspx
      oDoc:MailMerge:SuppressBlankLines:=.T.
      oDoc:MailMerge:DataSource:FirstRecord:=1  //wdDefaultFirstRecord = 1
      oDoc:MailMerge:DataSource:LastRecord:=-16 //wdDefaultLastRecord = -16
      // oDoc:MailMerge:MailAddressFieldName = "EMAIL"
      //  oDoc:MailMerge:MailSubject = "Email sent at: "+TIME()
      oWord:ActiveDocument:MailMerge:Execute(.T.) // Pause:=False
      //oDoc:Close( 0 )
   ENDIF
   //oWord:Quit()

return nil



Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2881
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Wolfgang Ciriack »

In meiner "Anregung" steht ja nichts von Drucken.
Ich dachte, du hast sowieso schon eine Routine zum Mail versenden.
Bei der XBase 2.0 sind ja Beispiele zum Mailversand mit dabei.
Ansonsten gibts ja auch die Möglichkeit, das ganze z.B. an Outlook zu übergeben.
Viele Grüße
Wolfgang
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2452
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 76 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Koverhage »

Wolfgang,
wie in meinem Eingangspost, gibt es diese Option bei der Activex Schnittstelle.

Options.SendMailAttach = True // True als Anhang, False als Nachrichtentext
ActiveDocument.SendMail

Normalerweise passiert folgendes
oDoc:printout
jetzt soll
oDoc:Sendmail
hinzukommen.
Mein einziges Problem ist:
Wie oder wo gebe ich die E-Mail Adresse des Empfängers an ?
Gruß
Klaus
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 965
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 16 Mal
Danksagung erhalten: 11 Mal

Re: Doc Datei als Mail

Beitrag von HaPe »

--
Hans-Peter
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2452
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 76 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Koverhage »

Hallo HaPe,
danke. werde ich probieren.
Gruß
Klaus
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 435
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 7 Mal

Re: Doc Datei als Mail

Beitrag von azzo »

Hallo Klaus,
ich habe mir meine Funktion zum E-Mail-Versands nochmals besser angeschaut und überarbeitet.
Der Versand funktioniert mit dieser Funktion.

Ich öffne eine DOCX Datei und speichere diese als HTML ab. Dann erstelle ich ein neues Outlook E-Mail und lese die HTML Datei mit memoread und fülle den HTMLBody damit.
Im DOCX, wenn du Tabellen verwendest, solltest du mit Prozent arbeiten, damit die HTML E-Mail auch am Handy gut aussieht.

LG
Otto

Bild
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2452
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 76 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Doc Datei als Mail

Beitrag von Koverhage »

Otto,
Danke.
Gruß
Klaus
Antworten