1. Startseite
  2. Nachrichten
  3. Herunterladen
    1. Thunderbird Release-Version
    2. Thunderbird 128 ESR
    3. Thunderbird 115 ESR
    4. Thunderbird Beta-Version
    5. Sprachpaket (Benutzeroberfläche)
    6. Wörterbücher (Rechtschreibprüfung)
  4. Hilfe & Lexikon
    1. Anleitungen zu Thunderbird
    2. Fragen & Antworten (FAQ) zu Thunderbird
    3. Hilfe zu dieser Webseite
  5. Forum
    1. Unerledigte Themen
    2. Letzte Beiträge
    3. Themen der letzten 24 Stunden
  • Deutsch
  • Anmelden
  • Registrieren
  • 
  • Suche
Dieses Thema
  1. Thunderbird Mail DE
  2. Forum
  3. Hilfe zu E-Mail und allgemeines Arbeiten
  4. Allgemeines Arbeiten / Konten einrichten / Installation & Update

Konten in Thunderbird per Mako VBA eritteln

  • yogi
  • 3. Februar 2018 um 16:58
  • Geschlossen
  • Erledigt
  • yogi
    Mitglied
    Beiträge
    13
    Mitglied seit
    24. Mrz. 2011
    • 3. Februar 2018 um 16:58
    • #1

    Um Rückfragen vorzubeugen, bitten wir um folgende Angaben:

    • Thunderbird-Version: in der Regel die neueste
    • Betriebssystem + Version: diverse, W7 bis W10, MAC
    • Kontenart (POP / IMAP): Beide
    • Postfach-Anbieter (z.B. GMX): GMX
    • Eingesetzte Antiviren-Software: Diverse
    • Firewall (Betriebssystem-intern/Externe Software):
    • Router-Modellbezeichnung (bei Sende-Problemen):

    Hallöchen

    in unserem Verein werden Aktionen per Mail an einzelne Mitglieder verschickt. Dafür verantwortlich sind einige Koordinatoren. Die Koordinatoren benützen Thunderbird oder Outlook mit verschiedenen eigenen Konten neben dem Vereinskonto. Die Mails werden per VBA-Makros aus Excel generiert. Dies funktioniert (fast) bestens. Das Problem: als Absender sollte immer das Vereinskonto verwendet werden. Bei Outlook ist das gelöst, wie kann nun die Sequenznummer des Vereinskonto bei Thunderbird ermittelt werden? (Die kann bei jedem Koordinator anders sein)

    Beispiel der vorhandenen Konten bei einem Koordinator :

    aaa.bbb@gmx.ch

    vereinskonto@gmx.ch

    eee.fff@abc.ch

    With NeueThunderbirdEMail

    .EmailFormat = 1

    .SendenVonKonto = 2 ' <= Hier ist die Sequenznummer für Account vereinskonto@gmx.ch

    .Empfaenger = "xyz@gmx.ch"

    .....

    .....

    .....

    End With


    Für Outlook sieht der Code für die Ermittlung der Sequnznummer so aus:

    For i = 1 To objOutlook.Session.Accounts.Count

    If Left(UCase(objOutlook.Session.Accounts.Item(i)), 6) = "Verein"Then

    Set objOutlookAccount = objOutlook.Session.Accounts.Item(iac)

    Exit For

    End If

    Next i ' i = 1 To objOutlook.Session.Accounts.Count


    Wie muss nun der entsprechende Code für Thunderbird aussehen?

    Gruss

    yogi

  • losgehts
    Senior-Mitglied
    Reaktionen
    13
    Beiträge
    924
    Mitglied seit
    12. Sep. 2007
    Hilfreiche Antwort
    1
    • 3. Februar 2018 um 20:59
    • #2

    Hallo,


    zeig doch mal bitte deinen bereits funktionierenden Code für die Erstellung einer E-Mail (für Thunderbird).


    Als ich das letzte Mal via VBA E-Mails für Thunderbird und Outlook erstellt habe (ist schon ein paar Jahre her), gab es noch nicht die Möglichkeit, "echte Thunderbird-Objekte" zu benutzen

    Code
    With NeueThunderbirdEMail
       .EmailFormat = 1

    hast du Verweise verwendet? Falls ja: welche?

    Ich kenne bis jetzt nur die beiden Möglichkeiten: das Mailto-Protokoll zu verwenden quasi einen Hyperlink, oder über die Kommandozeilenparameter (3.) zu verwenden.

    Meinem Kenntnisstand nach ist es nicht möglich, über diese beiden Möglichkeiten die Absenderadresse auszuwählen. Aber ich lasse mich gerne eines besseren belehren. Doch bitte zeig mir zunächst deinen kompletten Code für den Thunderbird, damit ich weiß, wo ich anfangen muss und evtl. auf den neusten Stand komme.


    Ansonsten könnten AddOns wie "correctIdentity" oder "virtualIdentity" helfen. correctIdentiy habe ich noch nie verwendet. Und ob das Zusammenspiel vom Kommandozeilenaufruf und Virtual-Identity funktioniert, habe ich auch noch nicht ausprobiert (sitze gerade an einem Linuxrechner).


    Da fällt mir noch ein: man könnte auch ein extra Profil mit nur dem einen Vereins-Account erstellen.

    Dann würde man vielleicht zunächst Thunderbird beenden und das spezielle Profil starten. Oder mit vielleicht mit der -no-remote Option das spezielle zusätzlich starten (weiß nicht, was weniger schlecht ist), bevor man die E-Mail erstellt.

    Das E-Mailprogramm zunächst zu beenden und dann wieder zu öffnen gefällt mir nicht so recht.


    Eigentlich empfehle ich immer, statt Thunderbird ein extra dafür gemachtes Programm zu verwenden. Es gibt z.B. blat.exe, ein kleines Kommandozeilenprogramm, das unter Windows E-Mails versenden kann. Arbeitet man mit IMAP stört sich daran weder Thunderbird, noch Outlook, noch sonst ein E-Mailclient. Arbeitet man mit POP3, müsste man eben die E-Mail an sich selbst im BCC senden. Um die gesendete E-Mail dann wieder im Client (Thunderbird oder Outlook oder ... ) zu haben.

    Viele Grüße,

    Ulrich

  • yogi
    Mitglied
    Beiträge
    13
    Mitglied seit
    24. Mrz. 2011
    • 4. Februar 2018 um 16:32
    • #3

    Tach Ulrich

    erstmals Danke für die Info.

    Der Code ist recht simpel:

    Code
    email = "ich@hispeed.ch"
        cc = "dich@hispeed.ch"
        bcc = "nochjemand@hispeed.ch"
        subj = "Testing"
        body = "Testtext"
        strFile2 = "D:/Test macros/test_anhang.txt"
        
        thund = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe " & _
                  "-compose " & """" & _
                  "to='" & email & "'," & _
                  "cc='" & cc & "'," & _
                  "bcc='" & bcc & "'," & _
                  "subject='" & subj & "'," & _
                  "body='" & body & "'," & _
                  "attachment='" & strFile2 & "'" & """"
        
        
        result = Shell(thund, vbNormalFocus)
    Alles anzeigen

    Das funktioniert bestens. Das Problem, als Absender wird das Standardkonto des Senders verwendet, und nicht das Vereinskonto. Es muss aber das Vereinskonto sein damit Antworten der Empfänger im Vereinskonto erscheinen. Was im Code noch fehlt ist die Angabe des Senderkontos.

    Ein externes Programm wie blat.exe ist nicht akzeptabel, die Koordinatoren wollen die Mails vor dem Senden ansehen und allenfalls noch editieren.

    Gruss

    yogi

  • Drehmoment
    Gast
    • 4. Februar 2018 um 19:12
    • #4

    Laut dieser Seite hier http://kb.mozillazine.org/Command_line_a…8Thunderbird%29 gibt es einen Parameter "preselectid". Die zugehörige ID des Kontos findet man in der prefs.js. Die könntest du parsen.

  • yogi
    Mitglied
    Beiträge
    13
    Mitglied seit
    24. Mrz. 2011
    • 8. Februar 2018 um 19:37
    • #5

    Tach Drehmoment

    Vielen Dank für den Tip, es hat geklappt!

    Der Code sieht nun so aus:

    Code
    Public Sub SendEmail()
        Dim thund As String
        Dim email As String
        Dim cc As String
        Dim bcc As String
        Dim subj As String
        Dim body As String
        Dim strFile2 As String
        Dim result
        Dim tunderbird_loc As String
        Dim prefs_line As String
        '
        ' Suche ...\Thunderbird\Profiles\*.default
        '
        tunderbird_loc = Environ("APPDATA")
        tunderbird_loc = tunderbird_loc & "\Thunderbird\Profiles\"
        default_dir = Dir(tunderbird_loc & "*.default", vbDirectory)
        If default_dir <> "" Then
          '
          ' Es gibt ein .default Ordner, also auch Thunderbird
          '
          prefs_file = Dir(tunderbird_loc & default_dir & "\prefs.js")
          '
          ' Öffne die Datei prefs.js und suche nach dem gewünschten Account
          '
          Close #1
          Open tunderbird_loc & default_dir & "\prefs.js" For Input As #1
          '
          ' Zeilenweise lesen und analysieren
          '
          Do While Not EOF(1)    ' Auf Dateiende abfragen.
            Line Input #1, prefs_line    ' Datenzeilen lesen.
            If InStr(1, prefs_line, "mia.obs@gmx.ch", vbTextCompare) > 0 Then
              '
              ' Diese Zeile enthält den Account, Nummer extrahiern
              '
              pos_is = InStr(1, prefs_line, "mail.identity.", vbTextCompare)
              prefs_line = Mid(prefs_line, pos_is + Len("mail.identity.") + 2)
              index_is = "id"
              Do
                index_is = index_is & Left(prefs_line, 1)
                prefs_line = Mid(prefs_line, 2)
              Loop Until Not IsNumeric(Left(prefs_line, 1))
              Exit Do
            End If
          Loop ' While Not EOF(1)
          Close #1    ' Datei schließen
          '
          ' Empfänger setzen
          '
          email = "jemand@hispeed.ch"
          cc = "copyan@hispeed.ch"
          bcc = "blind_copy@hispeed.ch"
          subj = "Testing"
          body = "Hier kommt der grosse Test" & vblf & _
                    "Gruss" & vblf & "Tester"
          '
          ' Anhang festlegen
          '
          strFile2 = "D:\Test\Test macros\via.jpg"
          strFile2 = "file:///" & Replace(strFile2, "\", "/")
          '
          ' Befehl zusammensetzen
          '
          thund = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe " & _
                  "-compose " & _
                  "format=" & "1" & "," & _
                  "preselectid=" & index_is & "," & _
                  "to='" & email & "'," & _
                  "cc='" & cc & "'," & _
                  "bcc='" & bcc & "'," & _
                  "subject='" & subj & "'," & _
                  "body='" & body & "'," & _
                  "attachment='" & strFile2 & "'" & """"
          '
          ' Mail erstellen, kann dann in Thunderbird kontrolliert und allenfalls
          ' geändert werden. Falls dann alles OK, auf "Senden" klicken.
          '
          result = Shell(thund, vbNormalFocus)
        End If
      End Sub '  SendEmail
    Alles anzeigen

    Gruss

    yogi

  • Drehmoment
    Gast
    • 11. Februar 2018 um 10:24
    • #6

    Schön, dass es klappt.

    Noch ein Hinweis. Dein Script sucht nach dem Default-Profil und holt daraus letztendlich die ID. Falls die Anwender mehrere Profile haben, muss diese ID nicht unbedingt mit der des aktiven Profils übereinstimmen. Eine wirklich gute Idee, wie man das jeweils aktive Profi ermitteln kann, habe ich nicht. Mir fällt dazu nur ein, dass du es daran erkennen kannst, dass die zugeörige Lock-Datei vorhanden ist und auch daran, dass die prefs.js einen aktuellen Zeitstempel hat.

  • Thunder 5. Januar 2019 um 02:28

    Hat das Thema aus dem Forum Spezielle Probleme nach Allgemeines Arbeiten verschoben.
  • Community-Bot 3. September 2024 um 20:30

    Hat das Thema geschlossen.

Aktuelle Programmversion

  • Thunderbird 138.0.2 veröffentlicht

    Thunder 20. Mai 2025 um 16:44

Aktuelle ESR-Version

  • Thunderbird 128.10.2 ESR veröffentlicht

    Thunder 20. Mai 2025 um 20:27

Keine Werbung

Hier wird auf Werbeanzeigen verzichtet. Vielleicht geben Sie dem Website-Betreiber (Alexander Ihrig - aka "Thunder") stattdessen etwas aus, um diese Seiten auf Dauer finanzieren zu können. Vielen Dank!

Vielen Dank für die Unterstützung!

Kaffee ausgeben für:

3,00 €
1
Per Paypal unterstützen*

*Weiterleitung zu PayPal.Me

Thunderbird Mail DE
  1. Impressum & Kontakt
  2. Datenschutzerklärung
    1. Einsatz von Cookies
  3. Nutzungsbedingungen
  4. Spendenaufruf für Thunderbird
Hilfe zu dieser Webseite
  • Übersicht der Hilfe zur Webseite
  • Die Suchfunktion benutzen
  • Foren-Benutzerkonto - Erstellen (Neu registrieren)
  • Foren-Thema erstellen und bearbeiten
  • Passwort vergessen - neues Passwort festlegen
Copyright © 2003-2025 Thunderbird Mail DE

Sie befinden sich NICHT auf einer offiziellen Seite der Mozilla Foundation. Mozilla®, mozilla.org®, Firefox®, Thunderbird™, Bugzilla™, Sunbird®, XUL™ und das Thunderbird-Logo sind (neben anderen) eingetragene Markenzeichen der Mozilla Foundation.

Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Forum
  • Lexikon
  • Artikel
  • Seiten
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern