VBOffice

Email-Sendeformat ändern

Mit diesem Makro können Sie für jede der drei Mailadressen eines Kontaktes festlegen, in welchem Format (Nur Text, HTML, RTF) Emails gesendet werden sollen.

Zuletzt geändert: 11.09.2006 | Aufrufe: 60.095  | #32
◀ Vorheriges Beispiel Nächstes Beispiel ▶
SAM SAM
Legen Sie fest, mit welcher "Identität" Ihre Emails beim Empfänger erscheinen sollen. Mit SAM bestimmen Sie den Absender und Speicherort für Emails anhand von Regeln.

Kontakte in Outlook können bis zu drei E-Mail Adressen haben, und für jede können Sie festlegen, in welchem Format E-Mails an diese gesendet werden sollen. Seit Outlook 2000 gibt es die Einstellungen a) Outlook wählt das optimale Format, b) als RTF senden; und seit Outlook XP gibt es eine dritte Option c) als Nur-Text senden.

Die Information, in welchem Format gesendet werden soll, steckt in der EntryID der jeweiligen E-Mail Adresse. Über das Outlook Objektmodell können Sie diese EntryID nur lesen, zum Ändern müssen Sie als VB(A)-Entwickler auf CDO 1.21 oder die Redemption zurückgreifen.

Das folgende Beispiel demonstriert anhand der Redemption, wie das Sendeformat für die erste E-Mail Adresse (Email1EntryID) geändert werden kann. Dazu muss die E-Mail Adresse vorhanden sein. (Die IDs für die anderen beiden möglichen Adressen sind bereits eingefügt, so dass Sie das Beispiel leicht selbst erweitern können.)


tip  So fügen Sie Makros in Outlook ein
Private Const SEND_AUTO_FORMAT = 1
Private Const SEND_RTF_FORMAT = 0
Private Const SEND_PLAINTEXT_FORMAT = 7

Public Sub ChangeSendingFormat()
  On Error GoTo cleanUp
  Dim Session As Redemption.RDOSession
  Dim Utils As Redemption.MAPIUtils
  Dim obj As Redemption.rdoMail
  Dim Items As Redemption.RDOItems
  Dim AdrID As Variant
  Dim PropID As Long
  Const GUID As String = "{00062004-0000-0000-C000-000000000046}"
  ' Email1EntryID
  Const ID = &H8085
  ' Email2EntryID = &H8095
  ' Email3EntryID = &H80A5

  Set Session = CreateObject("Redemption.RDOSession")
  Session.LogOn

  Set Items = Session.GetDefaultFolder(olFolderContacts).Items
  If Items.Count Then
    Set Utils = CreateObject("Redemption.MapiUtils")
    Set obj = Items(1)
    PropID = Utils.GetIDsFromNames(obj, GUID, ID)
    PropID = PropID Or &H102

    For Each obj In Items
      If TypeOf obj Is Redemption.RDOContactItem Then
        AdrID = Utils.HrGetOneProp(obj, PropID)
        If Not IsEmpty(AdrID) Then
          AdrID(22) = SEND_AUTO_FORMAT
          Utils.HrSetOneProp obj, PropID, AdrID, True
        End If
      End If
    Next
  End If

cleanUp:
  If Not Session Is Nothing Then
    Session.Logoff
  End If
End Sub
ReplyAll ReplyAll
Mit diesem Addin für Outlook erhalten Sie in verschiedenen Situationen eine Warnung, bevor Sie auf eine Email versehentlich allen anderen Empfängern antworten.
email  Senden Sie eine Nachricht