Automatischer BCC je nach E-Mail-Konto

Home-›Foren-›Outlook-›Outlook VBA-›Automatischer BCC je nach E-Mail-Konto

  • Dieses Thema hat 10 Antworten und 2 Stimmen, und wurde zuletzt aktualisiert 12:20 um 3. April 2007 von Unbekannt.
11 Antworten anzeigen - 1 bis 11 (von insgesamt 11)
  • Autor
    Beitrag
  • #40930
    Unbekannt
    Teilnehmer

      Hallo,

      ich habe über den folgenden VBA-Code erreicht, dass jede gesendete Mail per BCC nochmal an mich gesendet wird.
      [code]Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
      Dim objMe As Recipient
      Set objMe = Item.Recipients.Add(\”x@y.com\”)
      objMe.Type = olBCC
      objMe.Resolve
      Set objMe = Nothing
      End Sub
      [/code]

      Da ich aber mehrere Mailkonten habe, möchte ich, dass dies nicht bei jeder Mail geschieht sondern nur wenn die Mail über ein bestimmtes Konto gesendet wird. Wie kann ich das realisieren?

      #143348
      MichaelBauer
      Teilnehmer

        Übers Outlook-Objektmodell geht das erst ab Version 2007. dort gibt es die MailItem.Account Eigenschaft.
        Für OL XP und 2003 geht es über CDO 1.21 oder die Redemption. Mit beiden Bibliotheken kannst Du die Mapi-Eigenschaft 0x808E001E suchen bzw. lesen. Gibt es die, dann steht die Kontoinfo drin; gibt es die nciht, wird übers Standardkonto gesendet.

        Viele Grüße
        Michael Bauer

        #143351
        Unbekannt
        Teilnehmer

          Uh öh äh Danke 🙂
          Hab Outlook 2007 aber so überhaupt keine Ahnung von VBA… den Codeschnipsel da oben habe ich im Netz gefunden. Wäre nett wenn du mir das etwas \”konkreter\” beschreiben könntest. Dankö :redhead:

          #143366
          MichaelBauer
          Teilnehmer

            Du kannst den Code in ItemSend erweitern:
            [code]
            Dim Account as Outlook.Account

            Set Account=Item.SendUsingAccount

            If Account.DisplayName = \”was auch immer\” Then
            \’ hier Dein Code
            Endif
            [/code]

            Viele Grüße
            Michael Bauer

            #143369
            Unbekannt
            Teilnehmer

              Erstmal Danke – leider funktioniert das aber irgendwie nicht. Habe den Code folgenderma�en umgebaut:

              [code]Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
              Dim Account As Outlook.Account
              Set Account = Item.SendUsingAccount
              If Account.DisplayName = \”xxxxx@gmx.de\” Then
              Dim objMe As Recipient
              Set objMe = Item.Recipients.Add(\”xxxxxx@googlemail.com\”)
              objMe.Type = olBCC
              objMe.Resolve
              Set objMe = Nothing
              End If
              End Sub
              [/code]

              Es kommt zwar keine Fehlermeldung oder sonst was aber es wird halt einfach nie der BCC gesetzt. Meine Konten heissen wie die Mailadressen zu denen sie geh�ren. Kann das ein Problem sein?

              [Editiert am 23/3/2007 von Mailhilfe]

              #143374
              MichaelBauer
              Teilnehmer

                Du kannst mit der Maus die Zeile
                If Account.DisplayName = \”xxxxx@gmx.de\” Then
                wählen und mit f9 einen Haltepunkt setzen. Dann sende eine Mail mit dem gesuchten Konto. Die Codeausführung bleibt am Haltepunkt stehen. Gehe dann mit der Maus über \’SendUsingAccount\’ und sieh nach, was drin steht (auch Groß-/KLeinschreibung beachten).

                Viele Grüße
                Michael Bauer

                #143502
                Unbekannt
                Teilnehmer

                  Hab ich gemacht… anscheinend kommt das Programm aber nicht an den Punkt – die \”Codeausführung\” bleibt nirgends stehen.

                  #143503
                  MichaelBauer
                  Teilnehmer

                    Ok, Du kannst es vorsichtshalber nochmal mit einem Haltepunkt auf Application_ItemSend probieren. Aber es sieht so aus, dass der Code überhaupt nciht ausgeführt wird.

                    Führe nach Änderungen am Code bitte einen Neustart Outlooks durch. Außerdem muss natürlich die Sicherheit gesetzt sein, dass VBA läuft (Extras/Sicherheit niedrig oder mittel, oder hoch und mit Selfcert.exe ein Zertifikat erstellen.)

                    Viele Grüße
                    Michael Bauer

                    #143790
                    Unbekannt
                    Teilnehmer

                      Juche jetzt hat es geklappt. Es lag wohl an den Sicherheitseinstellungen die sich ominös verstellt hatten.
                      Gibt es eine Möglichkeit dieses eine Makro dauerhaft als vertrauenswürdig einzustufen damit ich die allgemeinen Sicherheitseinstellungen nicht dauerhaft auf \”Keine Prüfung..\” stellen muss?

                      #143793
                      MichaelBauer
                      Teilnehmer

                        Für ein einzelnes Makro geht das nicht, aber für die komplette Projektdatei. Google bitte nach \’SelfCert.exe\’! Irgendwo gibt es sicherlich eine Anleitung dazu.

                        Viele Grüße
                        Michael Bauer

                        #143796
                        Unbekannt
                        Teilnehmer

                          Sehr schön – habs hinbekommen. Danke!

                        11 Antworten anzeigen - 1 bis 11 (von insgesamt 11)

                        -