2Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
860
860
EMPFEHLEN
-
Hallo,
via Outlook möchte ich Mails mit mehreren Anhängen an zwei unterschiedliche Adressen senden. Das Senden mit je einer datei funktioniert auch recht gut - nur Wildcards scheinen wohl nicht zu funktionieren. Wie bekomme ich das hin?
Aus dem was ich mir bislang zusammen gegooglet habe bin ich schlau geworden und das ich nicht der Experte bin sieht man sicherlich am Code:
Ich vermute mal, daß ich mit dem FileSystemObject mit die Dateien aus dem Ordener holen muß. Hierzu hätte ich evtl. auch ein Beispiel - leider weiß ich aber nicht wie ich das ganze dann dem Attachments.Add übergeben soll.PHP-Code:Const olByValue = 1
Const olMailItem = 0
Dim oOApp
Dim oOMail
Dim oOApp2
Dim oOMail2
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oOApp = CreateObject("Outlook.Application")
Set oOMail = oOApp.CreateItem(olMailItem)
Set oOApp2 = CreateObject("Outlook.Application")
Set oOMail2 = oOApp.CreateItem(olMailItem)
With oOMail
.To = "amb@xxx.de"
.Subject = "Abgeschlossene Aufträge mB"
.Body = "Anbei die abgeschlossenen und unterschriebenen Aufträge (mit Beanstandungen)"
.Attachments.Add "C:\Auftraege\X_*.pdf", olByValue, 1
.Send
End With
with oOMail2
.To = "aob@xxx.de"
.Subject = "Abgeschlossene Aufträge oB"
.Body = "Anbei die abgeschlossenen und unterschriebenen Aufträge (ohne Beanstandungen)"
.Attachments.Add "c:\Auftraege\*.pdf", olByValue, 1
.Send
End With
Ein vielversprechendes Beispiel (VBA) sieht so aus:
Hier laufe ich jedoch ein DIR rein, was VBS wohl so nicht kenntPHP-Code:Dim sPath As String
Dim sFile As String
Dim sAttachments As String
sPath = "Z:\Kunden\Kunde1\"
sFile = Dir(sPath & "1-2-3 *.pdf")
Do While sFile > vbNullString
sAttachments = "," & Chr(34) & sPath & sFile & Chr(34)
sFile = Dir
Loop
If Len(sAttachments) > 0 Then sAttachments = Mid$(sAttachments, 2)
Im Anschluss sollen dann alle Dateien in einen Extraordner z.B. c:\gesendet verschoben werden. Aber das ist, glaub ich, ein anderes Thema
Geändert von _opiWahn_ (06.01.12 um 16:39 Uhr)
-
09.01.12 16:47 #2
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Guggst du hier:
http://www.source-code.biz/snippets/vbscript/1.htm
Was du effektiv brauchst ist dann am Ende sowas in der Art wie:
Code vb:1 2 3 4 5
sFile = Dir(sPath & "1-2-3 *.pdf") Do While sFile > vbNullString .Attachments.Add sFile, olByValue, 1 sFile = Dir Loop
nur halt anstatt dem DIR eben das aus der Beispielseite oben.
Musst ein wenig bastelnZwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
Bin schon im Ansatz etwas weiter gekommen und versuche es nun so:
Die Idee ist das Verzeichnis zu durchlaufen, die passenden Dateien heraus zu filtern und in ein jeweiliges Array zu schreiben.PHP-Code:Const olByValue = 1
Const olMailItem = 0
Dim oOApp
Dim oOMail
Dim oFolder
Dim oFile
Dim ixm
Dim ixo
Dim mbeanst(2)
Dim obeanst(2)
Set oFSO = CreateObject("Scripting.FileSystemObject")
set oFolder = oFSO.GetFolder ("C:\Roiger\Auftraege\Unterschrieben")
Set oOApp = CreateObject("Outlook.Application")
Set oOMail = oOApp.CreateItem(olMailItem)
ixm = 0
ixo = 0
For Each oFile In oFolder.Files
If Left(oFile.Name,1) = "X_" Then
msgbox ixm & " " & oFile.Name
mbeanst(ixm) = oFile.Name
elseif Left(oFile.Name,1) <> "X_" Then
msgbox ixo & " " & oFile.Name
obeanst(ixo) = oFile.Name
End If
ixm = ixm + 1
ixo = ixo + 1
Next
msgbox mbeanst(0)
msgbox obeanst(0)
With oOMail
.To = "amb@xxx.de"
.Subject = "Abgeschlossene Aufträge mB"
.Body = "Anbei die abgeschlossenen und unterschriebenen Aufträge (mit Beanstandungen)"
For i = 0 to ixm
.Attachments.Add ofolder & "\" & mbeanst(i), olByValue, 1
next
.Send
End With
Beim Senden der Mail soll dann das Array wieder ausgelesen werden.
Die Ausgabe in die MsgBox (zur Kontrolle) läuft wie gewünscht, aber das füllen des Arrays nicht!
Nach dem ersten Durchgang für <> X_ (3 Dateien) wird ixo auf 3 gesetzt und mit X_ (ebenfalls 3 Dateien)
weitergemacht - aber nur die erste Datei.
Danach folgt ein Fehler in Zeile 27 "Index außerhalb des gültigen Bereichs".
Ich habe die beiden Arrays erstmal statisch gesetzt (zum Testen). Die sollen später dynamisch sein.
Allerdings einfach leer lassen z.B. Dim name() scheint wohl nicht zu gehen?
-
Hab mein Fehler gefunden

So funktioniert's jetzt ... für alle die was ähnliches haben.
Was noch fehlt ist das dynamische Array! Hat jemand einen Tipp?
Ansonsten gehts bestimmt eleganter - aber es geht
PHP-Code:Const olByValue = 1
Const olMailItem = 0
Dim oOApp
Dim oOMail
Dim oOMail2
Dim oFolder
Dim oFile
Dim ixm
Dim ixo
Dim mbeanst(3)
Dim obeanst(3)
Set oFSO = CreateObject("Scripting.FileSystemObject")
set oFolder = oFSO.GetFolder ("C:\Roiger\Auftraege\Unterschrieben")
Set oOApp = CreateObject("Outlook.Application")
Set oOMail = oOApp.CreateItem(olMailItem)
Set oOMail2 = oOApp.CreateItem(olMailItem)
ixm = 0
ixo = 0
For Each oFile In oFolder.Files
If Left(oFile.Name,2) <> "X_" Then
obeanst(ixo) = oFile.Name
ixo = ixo + 1
else
mbeanst(ixm) = oFile.Name
ixm = ixm + 1
End If
Next
With oOMail
.To = "xyz@abc.de"
.Subject = "Abgeschlossene Aufträge oB"
.Body = "Anbei die abgeschlossenen und unterschriebenen Aufträge (ohne Beanstandungen)"
For i = 0 to 2
.Attachments.Add ofolder & "\" & obeanst(i), olByValue, 1
next
.Send
End With
With oOMail2
.To = "abc@xyz.de"
.Subject = "Abgeschlossene Aufträge mB"
.Body = "Anbei die abgeschlossenen und unterschriebenen Aufträge (mit Beanstandungen)"
For j = 0 to 2
.Attachments.Add ofolder & "\" & mbeanst(j), olByValue, 1
next
.Send
End With
-
10.01.12 16:21 #5
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Dynamische Arrays deklarierst du unter VB normalerweise so:
Code vb:1 2 3 4 5
Dim MyArray() as String 'Oder welcher Datentyp auch immer 'Später im Code musst du dann die tatsächlichen Grenzen zuweisen 'Preserve dient dazu, in einem Array bereits enthaltene Daten zu behalten. Ohne Preserve wird das Array komplett leer gemacht. Redim Preserve MyArray(1 to 10)
Ich weiss allerdings nicht, ob das auch mit VBS geht, dafür mache ich zuwenig VBSZwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
Ähnliche Themen
-
Outlook -> Wortfilter beim Mail senden?
Von Hawkster im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 20.03.10, 17:31 -
Worddokument als Anhang an Outlook mit mehreren Empfängern senden
Von skihase im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 27.09.07, 13:48 -
email mit mehreren anhängen
Von LiThiUm-FX im Forum PHPAntworten: 4Letzter Beitrag: 05.01.06, 02:36 -
outlook signatur anhängen
Von ziriander im Forum Office-AnwendungenAntworten: 7Letzter Beitrag: 20.11.04, 13:41 -
E-MAil senden, ohne Outlook
Von freakchannel im Forum Flash PlattformAntworten: 1Letzter Beitrag: 11.02.02, 21:56





Zitieren
Login





