Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mailversand ohne Outlook

Mailversand ohne Outlook
Dieter.K
Hallo Forum,
vielleicht kann mir jemand weiterhelfen (meine VBA-Kenntnisse sind mehr als bescheiden).
Mit folgendem Code kann ich Mails über Mozilla versenden:

Sub mail()
'hier wird die zuvor erstellte PDF-Datei über Thunderbird per Mail versandt
Dim strAn As String
Dim strBetr As String
Dim strBody As String
Dim DName As String
Dim Dateiname As String
Dim Pfad As String
Dim strAttPfad As String
Dim strThunderPfad As String
Dim strShell As String
Pfad = "D:\xxxxxxx" 'Pfad anpassen
DName = "xxxxxxx " 'Dateiname anpassen
Dateiname = Pfad & "\" & DName & Format(Now, "YYYY.MM.DD")
strThunderPfad = """C:\Programme\Mozilla Thunderbird\Thunderbird.exe"""
strAn = "meineMail@meinedomain.de"  'mehrere Empfänger durch Komma trennen  -  Mailadresse  _
anpassen!
strBetr = "xxxxxx" 'Betreff anpassen
strBody = "xxxxxx: " & DName & Format(Now, "DD.MM.YYYY") & " als Anlage." & vbCrLf & "" _
& vbCrLf & "xxxxxx" & vbCrLf & "xxxxxx" _
& vbCrLf & "xxxxxx" & vbCrLf & "xxxxxx"
strAttPfad = Dateiname & ".pdf" 'mehrere Dateien durch "file:\\\" trennen  -  Verzeichnis  _
anpassen!!
strShell = strThunderPfad & _
" -compose """ & _
"to='" & strAn & "'," & _
"subject='" & strBetr & "'," & _
"attachment='file:///" & Replace(strAttPfad, "\", "/") & "'," & _
"body=" & strBody & _
Call Shell(strShell, vbNormalFocus)
End Sub

Jetzt möchte ich aber die Mail nicht über Mozilla, sondern mit dem
Strato-Communicator versenden. Das öffnen des Communicators
funktioniert ohne Probleme mit folgendem Code:

Sub herber() 'Code aus der Forumssuche)
Set wshshell = CreateObject("WScript.Shell")
wshshell.Run "https://com4.strato.de/ox6/ox.html#&store=false"
End Sub

Frage: wie kann ich über VBA hier ebenfalls die benötigten Angaben,
"Betreff:", "Eintrag im Body" und die benötigten Mailadressen automatisch eintragen lassen?
Geht das überhaupt?
Hat jemand einen Lösungsansatz für mich?
Vielen Dank im Voraus.
Dieter.K
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mailversand ohne Outlook
13.03.2012 22:11:12
mumpel
Hallo!
In diesem Fall müsstest Du eine InternetExplorer-Session starten und die erforderlichen Felder dann füllen. Ist aber nicht so einfach. Im Forenarchiv findest Du Beispiele zu diesem Thema. Ob das auch mit anderen Browsern funktioniert kann ich nicht sagen.
Gruß, René
AW: Mailversand ohne Outlook
13.03.2012 22:21:02
Dieter.K
Hallo mumpel,
bei meinem Bekannten für den ich dieses Makro schreibe
(hängt noch ein bischen mehr dahinter) wird wie von Dir erwähnt
der "Strato-Communicator" über den IE gestartet. Funktioniert ja auch einwandfrei.
(mit anderen Browsern übrigens auch - es wird immer der Standardbrowser geöffnet).
Ich hatte gehofft, die Sache wie bei Mozilla vereinfachen zu können.
Etwas zum Hintergrund:
Bei meinem Bekannten werden in mehreren Filialen Bestellungen aus einem Kassenprogramm
an Excel übergeben, formatiert, in pdf umgewandelt und sollen dann per Mail versandt werden.
(Bedingung: über "Strato-Communicator").
Das ganze muss jedoch so einfach wie möglich gehalten sein, da ansonsten die Fehlerquote zu hoch ist.
Eventuell hat ja jemand noch eine Idee.
Gruß
Dieter.K
Anzeige
AW: Mailversand ohne Outlook
13.03.2012 22:38:37
mumpel
Einfach ist in diesem Fall nicht drin. Man muss schon einmal wissen, wie die einzelnen Felder (Body, Subject, An usw.) im Communicator heissen. Dafür müsste man sich den zugehörigen HTML-Quellcode anschauen. Und den Strato-Communicator hat nicht jeder.
Man könnte eventuell mit SendKeys arbeiten, aber das ist zu fehleranfällig.
BTW:
Kann der Bekannte nicht einfach einen vernünftigen Emailclient nutzen? Strato-Postfächer lassen sich auch über Outlook & Co. nutzen. IMHO ist das Zeugs von Strato nicht viel wert, da es sich anscheinend noch nicht einmal vernünftig fernsteuern lässt. Aber vielleicht kann der Bekannte mal bei Strato nachfragen. Die müssten ja wissen ob und wie sich der Strato-Communicator fernsteuern lässt. Das wäre auch für uns einfacher für eine vernünftige Hilfestellung.
Anzeige
AW: Mailversand ohne Outlook
14.03.2012 09:20:08
Dieter.K
Hallo Bernd,
vielen Dank für die Info. Schaue ich mir heute Abend mal an.
(muss jetzt erst ein bischen "werkeln").
Gruß
Dieter.K
;
Anzeige
Anzeige

Infobox / Tutorial

Mailversand ohne Outlook: So funktioniert's


Schritt-für-Schritt-Anleitung

Um E-Mails über den Strato-Communicator aus Excel zu versenden, kannst Du die folgenden Schritte ausführen:

  1. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Neues Modul hinzufügen:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Code einfügen:

    • Füge den folgenden Code in das Modul ein, um den Strato-Communicator zu starten und eine E-Mail zu versenden:
    Sub mailMitStrato()
       Dim wshshell As Object
       Set wshshell = CreateObject("WScript.Shell")
    
       ' URL des Strato-Communicators
       wshshell.Run "https://com4.strato.de/ox6/ox.html#&store=false"
    
       ' Hier kannst Du die Logik zum Ausfüllen der Felder hinzufügen
       ' Beispiel: SendKeys für Betreff und Body
       Application.Wait (Now + TimeValue("0:00:02")) ' Wartezeit, um den Communicator zu laden
       SendKeys "Betreff{TAB}Inhalt der E-Mail{TAB}meineMail@meinedomain.de"
    End Sub
  4. Code anpassen:

    • Passe den Code an Deine Anforderungen an, insbesondere die E-Mail-Adressen und den Text.
  5. Makro ausführen:

    • Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.

Häufige Fehler und Lösungen

  • Fehler: Strato-Communicator öffnet sich nicht:

    • Stelle sicher, dass die URL korrekt ist und dass Du mit dem Internet verbunden bist.
  • Fehler: E-Mail wird nicht gesendet:

    • Überprüfe, ob die Felder im Communicator richtig ausgefüllt werden. Möglicherweise musst Du die Namen der Felder im HTML-Quellcode des Communicators anpassen.
  • SendKeys funktioniert nicht zuverlässig:

    • Die Verwendung von SendKeys kann fehleranfällig sein. Versuche, das Timing anzupassen oder eine andere Methode zu verwenden.

Alternative Methoden

Falls Du nicht über den Strato-Communicator versenden möchtest, gibt es andere Möglichkeiten:

  • SMTP verwenden: Wenn Dein Strato-Postfach SMTP unterstützt, kannst Du ein einfaches Kommandozeilen-Programm wie BLAT oder SendIt verwenden. Hier ist ein einfacher VBA-Code für den SMTP-Versand:

    Dim ShellCommand As String
    ShellCommand = "blat.exe - -to meineMail@meinedomain.de -subject 'Betreff' -body 'Inhalt der E-Mail' -attach 'D:\Pfad\zur\Datei.pdf'"
    Call Shell(ShellCommand, vbNormalFocus)
  • Serienmail mit Thunderbird: Du kannst auch eine Serienmail mit Thunderbird erstellen, indem Du den Serienmail Thunderbird Excel-Ansatz verwendest.


Praktische Beispiele

Ein typisches Beispiel für den Mailversand aus einem Kassenprogramm könnte folgendermaßen aussehen:

  1. Daten aus Excel:

    • Du hast eine Excel-Tabelle mit Bestellungen, die Du in eine PDF umwandelst.
  2. VBA-Integration:

    • Der obige VBA-Code kann so angepasst werden, dass er automatisch alle Bestellungen durchläuft und eine E-Mail für jede Bestellung versendet.
  3. PDF generieren:

    • Stelle sicher, dass das PDF vor dem Versand erstellt wird.

Tipps für Profis

  • Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung in Deinem VBA-Code, um Probleme schneller zu identifizieren.

  • Sichere E-Mail-Adressen: Verwende die Funktion excel mailadresse trennen, um sicherzustellen, dass die E-Mail-Adressen korrekt formatiert sind, bevor Du sie sendest.

  • Makro-Optimierung: Überlege, ob Du Deine VBA-Skripte optimieren kannst, um die Ausführungsgeschwindigkeit zu erhöhen.


FAQ: Häufige Fragen

1. Kann ich E-Mails aus Excel versenden, ohne VBA zu verwenden? Ja, Du kannst auch Tools wie BLAT oder SendIt verwenden, um E-Mails über SMTP zu versenden, ohne VBA zu benötigen.

2. Funktioniert der Mailversand auch mit anderen E-Mail-Clients? Ja, Du kannst ähnliche Ansätze mit anderen E-Mail-Clients wie Outlook oder Thunderbird verwenden, indem Du deren spezifische APIs oder Funktionen nutzt.

3. Wie kann ich mehrere Empfänger in einer E-Mail hinzufügen? Du kannst mehrere E-Mail-Adressen durch ein Komma oder Semikolon trennen, je nach den Anforderungen des E-Mail-Clients.

4. Was tun, wenn der Communicator nicht richtig funktioniert? Überprüfe die Internetverbindung und die URL. Möglicherweise musst Du die Einstellungen im Strato-Communicator anpassen oder den Support kontaktieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige