Seite 2 von 2
Verfasst: Di, 06. Mär 2007 23:19
von Lewi
Ok, das hatte ich nicht getestet.
Ändere den Code wie folgt:
Code: Alles auswählen
If !empty( cAdress )
oMail:Recipients:Add( cAdress)
endif
Gruß, Olaf
Verfasst: Di, 06. Mär 2007 23:25
von Mario Ulbig
Hallo Olaf,
ist das nicht das gleiche ????
Function MailWithOutlook( cAdress, cSubject, cBody, cAttach)
Local oMail
Local oOutlook
Local oMailItem := NIL
cAdress := IIF( cAdress == NIL,"", cAdress) HIER cSubject := IIF( cBody == NIL ,"", cSubject)
cBody := IIF (cBody == NIL, "", cBody )
oOutlook := CreateObject("Outlook.Application")
IF Empty( oOutlook )
MsgBox( "Outlook nicht installiert" )
RETURN ( NIL )
ENDIF
oMail:= oOutlook:GetNamespace( "MAPI" )
oMail:= oOutlook:CreateItem(0)
oMail:Recipients:Add( cAdress) HIER
Grup Mario[/b]
Verfasst: Di, 06. Mär 2007 23:35
von Lewi
Nein!
Wenn keine Mail-Adresse übergeben wird bzw. der Wert leer ist, dann wird die Methode
oMail:Recipients:Add( cAdress)
nicht aufgerufen.
Die Zeile:
cAdress := IIF( cAdress == NIL,"", cAdress)
stellt nur sicher, dass cAdress nicht den Wert NIL hat.
Verfasst: Di, 06. Mär 2007 23:52
von Mario Ulbig
Habe ich soweit verstanden, geht aber leider bei mir immer noch nicht.
Du meinst also wenn keine Zuweisung an oMail:Recipients erfolgt,
so sollte sich Outlook öffnen, damit die fehlende Mailadresse eingegeben
werden kann.
Anders gefragt, gibt es eine Methode die Outlook expliziet öffnet.
z.B. open() statt send().
Verfasst: Mi, 07. Mär 2007 9:51
von Lewi
Mit "oMail:Display()" wird es sichtbar.
Verfasst: Mi, 07. Mär 2007 10:37
von Mario Ulbig
Danke Olaf,
gerade in diesem Moment habe ich aus einem VB Script den
Befehl gefunden und getestet. Es funktioniert.
Ich bin nun mal einer der gerne mit Büchern arbeitet. Kannst du mir
den eine Quelle nennen wo ich genau solche Dinge nachlesen kann.
Ich habe durch spielen herausgefunden, dass mit dem Aufruf:
oMail:= oOutlook:CreateItem(1)
der Terminplaner aufgeht.
Eine Frage noch zum Schluß. Mit der Methode display() wird je nach der Wahl bei CreateItem Outlook angezeigt. Aber immer mit der Meldung:
Möchten Sie die Änderung speichern Ja / Nein / Abbrechen. Kann mann das durch Parameter abstellen?
Danke Mario
Verfasst: Mi, 07. Mär 2007 10:43
von Mario Ulbig
Es geht auch mit testen.
oMail:display(1)
mit diesem Aufruf kommt keine Meldung mehr und der User kann tun und lassen was er will.
Olaf - vielen Dank für Deine Hilfe. Ich hoffe das auch ich Dir einmal
weiterhelfen kann.
Danke und Grüße aus Forchheim Obf.
Mario
Verfasst: Mi, 07. Mär 2007 11:40
von Lewi
Informationen zum Object-Modell von Outlook erhält Du über den VBA Editor.
Ruf dazu den Visual Basic-Editor von Outlook und klicke Menü ? auf Inhalt/Index bzw. Visual Basic Hilfe
Wenn Du im Rahmen der Office-Installation auch VBA installiert hast, befindet sich eine Hilfe-Datei zum Obkect-Modell auf Deinem Rechner. Der Name der Datei ist abhängig von Deiner Office-Version:
Version 2000( 9.0) -> Vbaoutl9.chm
Version 2002 (10.0) ->Vbaol10.chm
Version 2003 (11.0) -> VbaOL11.chm
Gruß, Olaf
Verfasst: Fr, 26. Okt 2007 11:38
von Muecke
Hallo zusammen,
weiss jemand wie ich die CC un BCC anhängen kann, damit beim Mail öffnen, die richtige Adresse des empfängers steht(im Feld an).?
Code: Alles auswählen
#include "activex.ch"
#pragma library( "ascom10.lib" )
Function MailWithOutlook( cAdress, cSubject, cBody, cAttach)
Local oMail
Local oOutlook
Local oMailItem := NIL
cAdress := IIF( cAdress == NIL,"", cAdress)
cSubject := IIF( cBody == NIL ,"", cSubject)
cBody := IIF (cBody == NIL, "", cBody )
oOutlook := CreateObject("Outlook.Application")
IF Empty( oOutlook )
MsgBox( "Outlook nicht installiert" )
RETURN ( NIL )
ENDIF
oMail := oOutlook:CreateItem(0)
oMail:Recipients:Add( cAdress)
oMail:BCC := cBCC
oMail:CC := cCC
ENDIF
oMail:Subject := cSubject
oMail:body := cBody
if ! emty( cAttach )
oMail:Attachments:Add(cAttach)
ENDIF
oMail:Send()
oMail:= NIL
oOutLook:quit()
oOutlook:destroy()
Return ( NIL )
Gruss Thomas
Verfasst: Fr, 26. Okt 2007 14:38
von Lewi
Hi!
Die Parameter "cCC" und "cBCC" solltest Du dannn auch in der Parameterliste anhängen:
Code: Alles auswählen
Function MailWithOutlook( cAdress, cSubject, cBody, cAttach, cCC, cBCC)
DEFAULT cCC to ""
DEFAULT cBCC to ""
..
Gruß, Olaf
Verfasst: Fr, 26. Okt 2007 14:51
von Muecke
Hallo,
Danke für Info.Mein Code
Code: Alles auswählen
oMail:= oOutlook:CreateItem(0)
IF acAdress <> nil
FOR i:=1 TO len(acAdress )
oMail:Recipients:Add( acAdress[i] )
NEXT
ELSEIF !empt( acBCC )
oMail:BCC := cBCC
ELSEIF !empt( acCC )
oMail:CC := cCC
ENDIF
Funkt eigentlich alles.Was aber nicht verändert wird, ist die Adresse wenn der Empfänger das mail anschaut.Es wird nicht seine Empfänger Adresse angezeigt sondern einfach eine. Wie kann ich dies Steuern oder ändern?
Gruss Thomas
Verfasst: Fr, 26. Okt 2007 15:08
von Lewi
Es werden die Adressen angezeigt, die Du, wie in Deinem Fall über "acAdress" übergibst.
Ich würde an Deiner Stelle eine Adresse unter "AN" angeben, den Rest mittels "BCC". Dann wird im eMail-Client des Empfängers nur der entsprechende "Empfänger" angezeigt.
Gruß, Olaf
Verfasst: Di, 30. Okt 2007 12:28
von Muecke
Hallo Olaf,
Danke für den Typ.
Gruss Thomas
Verfasst: Di, 30. Okt 2007 16:46
von Muecke
Hallo,
Ich möcht gerne das Mailing abschliesen, aber wie kann ich dies kontr.?
Code: Alles auswählen
oMail:Send()
oMail:= NIL
oOutLook:quit()
oOutlook:destroy()
Weiss jemand, wie ich dies abfragen kann, solange noch gesendet wird mit Outlook ?
Wenn ich dies nicht abfragen kann, kommt immer die Meldung, es sind noch Daten vorhanden zum senden.Dies möchte ich umgehen.
Das sollte vor
passieren.
Gruss Thomas