Outlook-Mail mit mehreren Anhängen erstellen

Einbindung von Office-Komponenten wie Word, Excel usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von MichaMB »

Hallo zusammen,

nachdem nun aus xbase++ mittels dem PRG emoSendMail eine Email in Outlook 2013 mit
E-Mail Adresse, (Emilwer)
Betreff, (Betrmail)
Text, (infmess0) bis (infmess12)
und Anhang (verzword)+(Anlage1) (Verzeichnis und Datei)
aus eigenen Variablen richtig erstellt wird,

Code: Alles auswählen

PROCEDURE DemoSendMail()
   Local cAdresses    := (Emilwer)
  local cSubject     := (Betrmail)
  local cMessage     := (infmess0)+(Chr(13))+(Chr(13))+(infmess1)+(Chr(13))+(Chr(13))+(infmess2)+(Chr(13))+(Chr(13))+(infmess3)+(Chr(13))+(Chr(13))+(infmess4)+(Chr(13))+(infmess5)+(Chr(13))+(infmess6)+(Chr(13))+(Chr(13))+(infmess7)+(Chr(13))+(infmess8)+(Chr(13))+(infmess9)+(Chr(13))+(infmess10)+(Chr(13))+(infmess11)+(Chr(13))+(infmess12)+(VERZBMP2)
  local cAttachments := (verzword)+(Anlage1)
  local nFlag        :=  NOFLAG
  local nErr
habe ich noch 2 Fragen:

1. wie lautet die Syntax wenn ich 2 oder 3 Anhänge verschicken möchte? oder geht das so gar nicht?

2. meine *.BMP mit Verzeichnis erscheint nur als Verzeichnislink, nicht als Bild

das Verzeichnis wird im main.PRG gespeichert

Code: Alles auswählen

 public VERZBMP2
  store substr(FESTWO,1,1) + ":\MXXXXZ\MXXX\bmp\VXXA_1.BMP" to verzbmp2
*.BMP ausdrucken auf meinem Drucker in Xbase++ geht, aber versenden?
z.B.

Code: Alles auswählen

#define GRAPHICS_PRINTER
#include "migrate.ch"
set device to print
      @ 0, 67, 5, 77 IMAGE (VERZBMP2)
vielen Dank schon mal im voraus
lG Micha
lG
Micha
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Outlook 2007 display()-Fehler

Beitrag von brandelh »

Hallo,

wenn du für Programmcode die Schaltfläche CODE oben verwendest, kann man es leichter lesen ;-)
Ich mach das mal in deinem Beispiel nachträglich ...

Zur Frage, ich meine dass man eMailadressen mit ";" verketten kann, vielleicht geht das auch bei Attachements.
Gruß
Hubert
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von MichaMB »

Hallo Hubert,

leider geht ";" nicht

Code: Alles auswählen

local cAttachments := (verzword)+ '\BUEPOB.PDF' 
funktioniert
sobald man etwas mit ";" anhängt findet das Programm die Datei nicht mehr
z.B.

Code: Alles auswählen

local cAttachments := (verzword)+ '\BUEPOB.PDF' ;(verzword)+ '\BUEPLogo.PDF' 
kommt Fehlermeldung:

Code: Alles auswählen

EMAILOUT.PRG(448:0): warning XBT0106: Procedure DemoSendMail does not end with RETURN
EMAILOUT.PRG(449:0): error XBT0232: LOCAL declaration follows executable statement
so geht es doch !!!!!

Code: Alles auswählen

  Local cAttachments :=  "C:\MBNETZ\MAB\DRUWORD\\BUEPOB.PDF;C:\MBNETZ\MAB\DRUWORD\\BUEPLogo.PDF"
jetzt muss ich nur noch ausprobieren wie das mit unterschiedlich vielen Variablen funktioniert

Danke vielmals
durch das richtige Anzeigen des Codes in meiner Frage bin ich drauf gekommen :banghead:
LG Micha
lG
Micha
DelUser01

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von DelUser01 »

Hallo Michael

was ist "emoSendMail" ?
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von MichaMB »

Jetzt habe ich die Lösung gefunden!

Code: Alles auswählen

// waehlt die Anzahl der Anhaenge aus, je nach Email-Art mit z.B. 1, 2 oder 3 Anhaengen
Public AnzAnhaenge
  store 2 to AnzAnhaenge
// ist die Variable die die Anh„nge fr
Public Anhangx
  do case
    case anzAnhaenge = 1
      store '"'+substr(FESTWO,1,1) + ':\MBNETZ\MAB\DRUWORD\BUEPOB.PDF' + '"' to Anhangx
    case anzAnhaenge = 2
      store '"'+substr(FESTWO,1,1) + ':\MBNETZ\MAB\DRUWORD\BUEPOB.PDF;'+substr(FESTWO,1,1) + ':\MBNETZ\MAB\DRUWORD\BUEPLogo.PDF'+'"' to Anhangx
    case anzAnhaenge = 3
      store '"'+substr(FESTWO,1,1) + ':\MBNETZ\MAB\DRUWORD\BUEPOB.PDF;'+substr(FESTWO,1,1) + ':\MBNETZ\MAB\DRUWORD\BUEPOB.PDF;'+substr(FESTWO,1,1) + ':\MBNETZ\MAB\DRUWORD\KUEPLogo.PDF'+'"' to Anhangx
  otherwise


      store '"'+substr(FESTWO,1,1) + ':\MBNETZ\MAB\DRUWORD\BUEPOB.PDF'+ '"' to Anhangx
  endcase
dann in der Anwendung
PROCEDURE DemoSendMail()

Code: Alles auswählen

 Local cAttachments :=  &Anhangx
LG Micha
lG
Micha
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von MichaMB »

Hallo Roland,

das war der Tipp von Jimmy
http://www.alaska-software.com/download ... section=12

hier findest du beim Download auch die "PROCEDURE DemoSendMail() "

Diese habe ich nun so lange modifiziert, bis ich Sie in mein Xbase++ Programm Kundenverwaltung einbauen kann
Ich wähle einen Kunden aus...
wähle den gewünschten Druck-Vorgang aus,
dann öffne ich mittels

Code: Alles auswählen

                ? RunShell( "KUEPLogo.bat", "C:\MBNETZ\MAB\DRUWORD\KUEPLogo.bat" )                
eine Batch-Datei die die Word-Datei mit Serienbrieffunktion und einem Makro öffnet

Code: Alles auswählen

@echo off
cls
@echo off
echo.    Aufruf Word.doc
echo.
start c:\mbnetz\MAB\druword\BUEPLogo.docx / update_und_wo_dbf (Makro)
:ende

eine Word-Datei auf, diese ist mit einer *.DBF als Serienbrief (auch mehrseitig) verknüpft
diese speichert sich mittels eine Makros als *.Pdf (mit dem Namen des Kunden und dem Vorgang)
durch Hilfe des Xbase-Programmes gleich im richtigen Kundenverzeichnis bei diesem Kunden im entsprechenden Vorgangsverzeichnis
und nun öffnet sich die Email und ich habe alle Daten zum senden an den Kunden fertig in der Mail :D
das erspart mir künftig viele umständliche einzelne Arbeitsschritte
Lg
Micha
lG
Micha
DelUser01

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von DelUser01 »

Hallo Michael

habe inzwischen auch bemerkt dass das nur ein Schreibfehler war und "DemoSendMail" heißen sollte...
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von MichaMB »

hat mir noch jemand eine Tipp?

Thema Procedure DemoSendmail
meine *.BMP mit Verzeichnis erscheint nur als Verzeichnislink, nicht als Bild
wie kann man eine *.BMP in den Emailtext integrieren?

Code: Alles auswählen

  // Verzbmp2 := substr(FESTWO,1,1) + ':\MBNETZ\MAB\bmp\VEMA_1.BMP'
local cMessage     := (infmess0)+(Chr(13))+(Chr(13))+(infmess1)+(VERZBMP2)       
LG Micha
lG
Micha
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von AUGE_OHR »

MichaMB hat geschrieben:wie kann man eine *.BMP in den Emailtext integrieren?
es muss RTF oder Html sein damit du ein Image "einbetten" kannst.
gruss by OHR
Jimmy
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von MichaMB »

Hallo Jimmy,

Mein Outlook verfasst die Nachrichten in Html
Dort kann man in der Signatur ein Bild mit integrieren, wenn allerdings E-Mail Outlook von Xbase++ aufgerufen wird, dann erscheint das Fenster ohne Signatur.
Da wir von verschiedenen Absendern die Impressum anpassen müssen, ist es auch gut, wenn ich das mit Datensätzen, so wie bereits programmiert, befüllen kann.
Ich wähle dazu variable Sätze aus einer Datenbank die man dann für die einzelnen User vorbelegen kann. Der Inhalt der Anrede und der jeweilige E-Mail-Haupttext wird aus dem Programm gesteuert. Leider fehlt nun nur noch die Optik wegen dem fehlenden Bild
Das Bild müsste doch auch mit in den Anhang übergeben werden, oder?

hast du mir bitte ein kurzes Beispiel?
lG Micha
lG
Micha
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von MichaMB »

Hallo liebe Spezialisten,

brauche dringend Eure Hilfe! Muss leider dazusagen, bin ein absoluter Laie und brauche immer ein Beispiel um es zumindest anwenden zu können

Wie kann ich verhindern, das mein Programm weiterläuft während das aufgerufene Batch-Programm mit der verknüpften Word-Datei Serienbrief und abspeichern als XY.DBF noch nicht fertig ist

Code: Alles auswählen

    
    case upper(KOM) = 'MV'
          store .f. to DF3
          if upper(lobrief) = "L"
            ? RunShell( "MVP1Logo.bat", "C:\MBNETZ\MAB\DRUWORD\MVP1Logo.bat" )
            KOMO := "MV"
            set default to (verzdat)
            SET PATH to (verzdat)
             do emailout
          else
            ? RunShell( "MVP1OB.bat", "C:\MBNETZ\MAB\DRUWORD\MVP1OB.bat" )
            KOMO := "MV"
            set default to (verzdat)
            SET PATH to (verzdat)
             do vzerstna
          endif
!
ausgeführt wird? Das Programm verzweigt dann in das Email - Programm (emailout) und die Anlage ist noch nicht fertig
Das Programm benötigt für die Weiterverarbeitung Daten die durch ! runshell..... erzeugt werden
Muss ich das als Function aufrufen und wenn ja wie?
ganz lieben Dank im voraus
Micha
lG
Micha
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von Werner_Bayern »

Servus Micha,

schau Dir mal die Parameter zu runshell an!

<lAsync> und <lBackGround> sind Deine Kandidaten!
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von MichaMB »

Hallo Werner,
das Programm funktioniert ohne die Parameter, solange ich das Info-Fenster für das versenden der mail nicht unterdrücke.
Allerdings muss ich darauf achten, dass die zuvor mittels batchfile geöffnete Word-Datei nicht "unsichtbar" hinter das Anwendungsfenster gerät, sonst passiert natürlich nichts und bei drücken von "Return" würde das Exefile weiter laufen
lG
Micha
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von Werner_Bayern »

Meine Antwort bezog sich auf Deine Frage:
Wie kann ich verhindern, das mein Programm weiterläuft während das aufgerufene Batch-Programm mit der verknüpften Word-Datei Serienbrief und abspeichern als XY.DBF noch nicht fertig ist
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von AUGE_OHR »

MichaMB hat geschrieben:Allerdings muss ich darauf achten, dass die zuvor mittels batchfile geöffnete Word-Datei nicht "unsichtbar" hinter das Anwendungsfenster gerät, sonst passiert natürlich nichts und bei drücken von "Return" würde das Exefile weiter laufen
wie Werner schon sagte siehe dir mal den 3th Parameter von RunShell() an

Code: Alles auswählen

RunShell( <cCmdLine> , ; 
         [<cProgram>], ; 
         [<lAsync>]  , ; 
         [<lBackground>] )
<lAsync>

<lAsync> ist ein logischer Wert, der bestimmt, ob der neu gestartete Befehlsprozessor synchron oder asynchron mit der Xbase++ Anwendung ablaufen soll. Der Standardwert ist .F. (falsch), d.h. ohne Angabe von <lAsync> wird eine Xbase++ Anwendung angehalten bis der neue Befehlsprozessor oder das gestartete Programm abgebrochen bzw. beendet wird.
wenn du "mehr Kontrolle" benötigst dann siehe dir die Class TRunProcess von Pablo an.
TRunProcess.zip
benötigt ot4xb
(3.95 KiB) 469-mal heruntergeladen
gruss by OHR
Jimmy
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Re: Outlook-Mail mit mehreren Anhängen erstellen

Beitrag von MichaMB »

Hallo Jimmy,

vielen Dank, aber das ist mir noch zu hoch... (habe mir erst die fehlenden Dateien besorgen müssen und teste mal bei Gelegenheit)

ich habe bei runshell keine Parameter, also müsste mein Quellcode stoppen, sobald ich aber eine Return-Taste drücke, läuft das Programm weiter und verwendet bereits jetzt eine Datei*.PDF die erst parallel jetzt mit Word speichern als PDF neu überschrieben wird.
Also ist in der Email der Richtig Anhang-Name aber mit dem Inhalt, den ich davor gespeichert hatte :-(
jetzt lösche ich in der Batch-Datei zum Aufruf des Wordfiles die *.pdf und starte dann erst die Word.DOC
Dann versuche ich mal ein Fenster (wait) im Hauptprogramm (exe file) zu öffnen, und dieses erst zu schließen bis die Ursprungs-Datei.PDF neu angelegt und überschrieben wurde
dann müsste nach schließen des Fensters das Email Programm gestartet werden...

so wie es aussieht, klappt die Vorgehensweise, in dem neu geöffneten Fenster könnte man nun z.B. auch gleich mit abfragen, ob die Datei die als Email gesendet wird auch gleich ausgedruckt werden soll, gespeichert wird sie ja automatisch

lg
Micha
lG
Micha
Antworten