Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dateianhänge als .Attachments.Add an den SMTP übergeben

Frage Microsoft Microsoft Office

Mitglied: thomas1972

thomas1972 (Level 1) - Jetzt verbinden

22.01.2015, aktualisiert 08:47 Uhr, 734 Aufrufe, 5 Kommentare

Hallo,

ich hab da mal eine frage wie man es vielleicht eleganter umsetzen kann.

Ich versende Emails über Acces und selektiere die anhänge über ein getrentes Formular

Auf diesem habe ich X Grafiken und Textfelder für die selektiere Pfadangabe

bei klick öffnet sich das Windows Selektionsfenster zur Auswahl der Datei. (10 Grafiken), welche jeder für sich angewählt werden muss.

Nun bin ich auf der Suche nach eine eleganteren Möglichkeit x Anhänge gleichzeitig auszuwählen und entsprechend zu übergeben.
Hat jemand vielleicht eine Idee der Umsetzung

01.
Private Sub Anhang_1_Click() 
02.
Me.Anhang1 = DateiOeffnen("Datei öffnen", "Datenbanken" & Chr$(0) & "*.*") 
03.
eAnhang(1) = Anhang1 
04.
End Sub 
05.
... 
06.
Private Sub Anhang_10_Click() 
07.
Me.Anhang10 = DateiOeffnen("Datei öffnen", "Datenbanken" & Chr$(0) & "*.*") 
08.
eAnhang(10) = Anhang10 
09.
End Sub
diese Übergebe ich dann zum senden per CDO an den SMTPServer


01.
..... 
02.
With objMsg 
03.
'Einfügen der anhänge 
04.
    For w = 1 To 10 
05.
     If eAnhang(w) <> "" Then 
06.
      .Attachments.Add eAnhang(w)  'Anhang aus formular 
07.
     End If 
08.
    Next 
09.
'Ende Einfügen der anhänge 
10.
.... 
11.
     .To = varemail 
12.
     .SentOnBehalfOfName = "....." 
13.
     .Subject = "Testmail: " & Betreff 
14.
     .Importance = 0 'Wichtigkeit Hoch ( 0 = niedrig, 1 = normal, 2 = Hoch) 
15.
     .BodyFormat = 3 '1=Plain text, 2=HTML 3=RichText 
16.
     .Body = Mailtext 'RichText 
17.
     .Send   'or  .display

Grüße aus München
Mitglied: colinardo
22.01.2015, aktualisiert um 09:41 Uhr
Hallo Thomas,
mit einem FileDialog-Objekt bei dem die Eigenschaft MultiSelect auf True steht problemlos machbar.
Siehe dazu:

Grüße Uwe
Bitte warten ..
Mitglied: thomas1972
22.01.2015, aktualisiert um 14:13 Uhr
Hallo Uwe,
danke für die Rückmeldung,

habe folgendes Probiert

01.
Function UseFileDialogOpen() As String 
02.
 
03.
    Dim lngCount As Long 
04.
    Dim ordner As FileDialog 
05.
    
06.
    Set ordner = Application.FileDialog(msoFileDialogFilePicker) 
07.
    With ordner 
08.
        .Title = "Auswahl" 
09.
        .AllowMultiSelect = True 
10.
        .ButtonName = "Auswählen" 
11.
        .Filters.Clear 
12.
        .Show 
13.
        For lngCount = 1 To .SelectedItems.Count 
14.
            UseFileDialogOpen = .SelectedItems(lngCount) 
15.
        Next lngCount 
16.
    End With 
17.
    Set ordner = Nothing 
18.
End Function 
19.
 
20.
Private Sub Datei_auswählen_Click() 
21.
Dim varDateien As Variant 
22.
    varDateien = Array(UseFileDialogOpen()) 
23.
    
24.
    Set OutApp = CreateObject("Outlook.Application") 
25.
    Set OutMail = OutApp.CreateItem(0) 
26.
     
27.
    With OutMail 
28.
        .To = "test@test.de" 'Empfaenger 
29.
        .Subject = Betreff 'Betreff 
30.
        .Body = Nachricht 'Nachricht 
31.
        .Attachments.Add (varDateien) 'Anhang 
32.
        .Display 
33.
    End With

ich sehe zwar bei UseFileDialogOpen, dass er die schleife durchläuft und die Anhänge auflistet,
nur kommt er mit den Anhängen nicht klar "ungültiger Prozeduraufruf",
kanst du hier nochmal schauen?
Bitte warten ..
Mitglied: colinardo
22.01.2015, aktualisiert um 14:23 Uhr
Das geht so leider nicht, mach es beispielsweise so:
01.
Function UseFileDialogOpen() As String() 
02.
 
03.
    Dim lngCount As Long 
04.
    Dim ordner As FileDialog 
05.
    Dim fileArray() As String 
06.
    
07.
    Set ordner = Application.FileDialog(msoFileDialogFilePicker) 
08.
    With ordner 
09.
        .Title = "Auswahl" 
10.
        .AllowMultiSelect = True 
11.
        .ButtonName = "Auswählen" 
12.
        .Filters.Clear 
13.
        If .Show = -1 Then 
14.
            For lngCount = 1 To .SelectedItems.Count 
15.
                ReDim Preserve fileArray(1 To lngCount) 
16.
                fileArray(lngCount) = .SelectedItems(lngCount) 
17.
            Next         
18.
        End If 
19.
    End With 
20.
    UseFileDialogOpen = fileArray 
21.
    Set ordner = Nothing 
22.
End Function 
23.
 
24.
Private Sub Datei_auswählen_Click() 
25.
    Dim files() As String 
26.
    files = UseFileDialogOpen 
27.
 
28.
    Set OutApp = CreateObject("Outlook.Application") 
29.
    Set OutMail = OutApp.CreateItem(0) 
30.
     
31.
    With OutMail 
32.
        .To = "test@test.de" 'Empfaenger 
33.
        .Subject = Betreff 'Betreff 
34.
        .Body = Nachricht 'Nachricht 
35.
         For Each file In files 
36.
            .Attachments.Add file 
37.
         Next 
38.
        .Display 
39.
    End With 
40.
End Sub
Bitte warten ..
Mitglied: thomas1972
22.01.2015 um 14:36 Uhr
Danke Uwe,

das wars gewesen.
eine kleine Frage habe ich da dennoch,
besteht die Möglichkeit die Werte der file in Variablen zwischen zu speichern, so das der Sendevorgang auch später noch nachgeholt werden kann ( werte dann aus den Variablen ziehend)?
Bitte warten ..
Mitglied: colinardo
22.01.2015, aktualisiert um 18:57 Uhr
Zitat von thomas1972:
eine kleine Frage habe ich da dennoch,
besteht die Möglichkeit die Werte der file in Variablen zwischen zu speichern,
?? Ist es doch oben im Array files. Wenn du es außerhalb der Prozedur verwenden willst musst du eine öffentliche Variable außerhalb der Prozedur deklarieren und diese dann mit dem Array füllen. Dann kannst du später auch noch auf den Inhalt der Variablen zugreifen.

Also dann bspw. so:
01.
' Öffentliche Variable deklarieren 
02.
Dim files() As String 
03.
 
04.
Function UseFileDialogOpen() As String() 
05.
     ' ..... Code nur zur Demo weggelassen 
06.
End Function 
07.
 
08.
'Fülle Variable z.B. in einer Prozedur 
09.
Sub FuelleVariable() 
10.
    files = UseFileDialogOpen 
11.
End Sub 
12.
 
13.
'Benutze die Variable aus einer anderen Prozedur 
14.
Sub UseVariablefromOtherSub() 
15.
    For Each file In files 
16.
        Debug.Print file 
17.
    Next 
18.
End Sub 
19.
 
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
E-Mail
gelöst Falsche SMTP Server IP Adresse (6)

Frage von laster zum Thema E-Mail ...

Exchange Server
Exchange nicht alle mails kommen rein 550 smtp (2)

Frage von windows10 zum Thema Exchange Server ...

PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...