Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: hawebe am August 12, 2012, 10:26:59

Titel: Outlook-Signatur über VBA einbinden
Beitrag von: hawebe am August 12, 2012, 10:26:59
Hallo,
ich versende Berichte aus der Anwendung (Acc2010) heraus über Outlook.

Private Sub OeMailoR_Click()
On Error GoTo OeMailoR_Click_Err
Dim stDocName As String
Dim Mailadr As String
Dim Subj As String
Dim Msg As String
Dim RetVal As Boolean

Mailadr = Forms!frmKundedat!eMail
stDocName = "berSaAngebMail"

Msg = "Unsere Angebote auf Ihre Anfrage"
Subj = "Sehr geehrte Damen und Herren, <br> <br>" & _
wir danken für Ihre Anfrage und übersenden Ihnen unsere Angebote im Anhang dieser Email. <br> <br> Mit freundlichen Grüssen ! <br> <br> <br>"

RetVal = olPDFMail(stDocName, Mailadr, Subj, Msg, True)


Meine Bitte um Hilfe betrifft die Signatur, also dass, was nach den "Grüssen!" folgt:

Ich könnte den HTML-Text zwar um die Zeilen
- "Unser Firmenname <br>
- "Unser Firmensitz <br>
usw. ergänzen, aber dabei tritt das Problem auf, dass bei Änderungen (z.Bsp.: Faxnummer) wieder ein Datenbankeingriff erforderlich ist.

Meine in Qutlook vorhandene Signatur wird leider nicht übernommen.

Frage:

Gibt es die Möglichkeit, die in Outlook vorhandene Signatur per VBA in die o.a. Prozedur einzubinden ?
Titel: Re: Outlook-Signatur über VBA einbinden
Beitrag von: bahasu am August 12, 2012, 10:57:28
Moin,

die Antwortet lautet: ja

Ich verwende die folgenden Zeilen:

   
   Dim qd As QueryDef
   Dim rs As Recordset
   Dim Abfrage As String
   Dim Abfrage_order As String
   Dim Email_Signatur As Variant
   Dim intFile As Integer
   Dim strFile As String
   Dim lngFileLen As Long
   Dim Weiter As Boolean
   Dim Nr As Integer
   Dim x As Long
   Dim Suchen As String
   Dim Ergebnis As String    
   Dim Lesefehler As Long
   Ergebnis = Left(Ergebnis, InStrRev(Ergebnis, "</body") - 1)     ' nur den Teil bis zum Ende des html-Textes nehmen


   If Dir("C:Dokumente und Einstellungen\" & CompName(1) & "\Anwendungsdaten\Microsoft\Signatures\Name_Deiner_Signatur.htm") > "" Then
       Open "C:Dokumente und Einstellungen\" & CompName(1) & "\Anwendungsdaten\Microsoft\Signatures\Name_Deiner_Signatur.htm" For Binary As #intFile
       lngFileLen = LOF(intFile)
   
       If lngFileLen <> 0 Then
           strFile = String$(lngFileLen, 32)
           Get intFile, , strFile

           x = InStr(strFile, "<div style")            ' nicht den Kopfteil vom html-Text verwenden
           If x > 0 Then strFile = Mid(strFile, x)

           Ergebnis = Ergebnis & "<br><br>" & strFile
       End If
       
       Close #intFile
   End If


In Ergebnis steht der zu versendende Text, der um die Signatur erweitert wird.
Die Zeilen entfernen auch bestimmte Teile im html-Text, der ansonsten bei mir dazu führte, dass eine Meldung erschien, dass ein fremdes Programm auf Outlook zugreift und was ich dann erlauben mußte (click-yes Problematik wurde durch das Entfernen vermieden).

Das gilt für office2003 bzw. 2007.

Harald

PS Nachgetragen ist der DIM-Teil als Kopie aus meiner Routine, wird also für hier zuviel dabei sein.

Titel: Re: Outlook-Signatur über VBA einbinden
Beitrag von: hawebe am August 12, 2012, 16:23:17
Hallo,

ich muss das Thema zunächst einmal zurückstellen, weil die Signatur fremdbestimmt wird und ich zur Zeit keine Aussagen dazu (Serverumgebung) bekommen kann.

Würdest Du mir aber dennoch bitte den Deklarationsbereich Deiner Prozedur mitteilen?
Titel: Re: Outlook-Signatur über VBA einbinden
Beitrag von: bahasu am August 12, 2012, 18:02:27
Hallo hawebe,

Den DIM-Teil habe ich oben eingebaut, damit es nicht zerstückelt wird.


Zitat von: hawebe am August 12, 2012, 16:23:17
ich muss das Thema zunächst einmal zurückstellen, weil die Signatur fremdbestimmt wird und ich zur Zeit keine Aussagen dazu (Serverumgebung) bekommen kann.

Klingt so, als ob wir in der gleichen Firma arbeiten.   ;D
Auch bei mir war es mit Sucherei verbunden, wo die IT die Signaturen abgelegt hat.
Die obigen Zeilen dienen also nur als Vorschlag. Mag sein, dass es bei Euch anders geregelt wurde.


"CompName" ist eine api-Funktion, die u.a. den Namen vom Benutzer ermittelt.

Harald
Titel: Re: Outlook-Signatur über VBA einbinden
Beitrag von: hawebe am August 12, 2012, 23:16:03
Hallo Harald,

danke für die Hilfe.

Ich werde es auf dem Server anders lösen müssen, denn bei den vielen Usern wäre es sehr aufwendig über diesen Pfad zu gehen, zumal ich auch nur einen rumpeligen Fernzugriff habe.

Ich denke mal, ich lege die Signatur in mein Verzeichnis (M:\db\). Dort befinden sich Front- und Backend.

Also, in diesem Sinne.

Hans-Wolfgang