HTML handtekening onder door ERP gegenereerde mail lukt niet

Status
Niet open voor verdere reacties.

ADvH

Gebruiker
Lid geworden
5 apr 2018
Berichten
39
Ons ERP pakket genereert een email met daarin een PDF bijlage.
ik krijg heb prima voor elkaar om de onderwerpregel aan te passen, ook de bodytekst lukt wel, maar als ik de HTML handtekening toe wil voegen krijg ik een flinke berg met HTML code, maar geen HTML handtekening.

Waarschijnlijk moet er nog een stukje code bij?

Dit is wat ik nu heb:
Code:
Sub Test()
   
    Application.ActiveInspector.CurrentItem.Subject = "Overgeslagen factuur  - " & Application.ActiveInspector.CurrentItem.Subject
    With Application.ActiveInspector.CurrentItem
        .Body = "Beste klant," & vbCrLf & vbCrLf & "Bijgaande factuur lijkt te worden overgeslagen bij de betalingen. Wilt u een en ander nakijken. Als er iets mee aan de hand is hoor ik het graag." & vbCrLf & vbCrLf & .HTMLBody
    End With
End Sub

Heeft iemand een idee?

oplossing 2
Deze body tekst heb ik ook als (niet standaard)handtekening aangemaakt. Bestaat er VBA code om een niet standaard handtekening toe te voegen? Ik heb wel een stuk of 8 handtekeningen waarvan er dan één 'geselecteerd' zou mogen worden.

Alvast dank voor het meedenken,
Vr Gr Albert
 
Je hebt het over een mail met een pdf bijlage; die mis ik in je code. Als je vanuit een pakket een document mailt (Word, Excel bijvoorbeeld) kun je geen handtekening gelijktijdig krijgen. Dat kan Office niet aan. Het is ofwel een lege mail met handtekening (bijlage zelf bijvoegen) ofwel een mail met bijlage zonder handtekening. Die moet je dan dus later zelf toevoegen. Kan je dan gewoon uit de keuzelijst pakken, daar zou ik geen macro voor maken, want dat levert nauwelijks winst op.
 
Een tekst email heeft een text/plain body en een html email heeft een multipart (text/html) body. In een html email body moet de tekst 2 keer staan, eentje als html en dezelfde tekst nogmaals maar dan zonder html. Als je een handtekening onderaan in de email body bedoelt dan zou je deze code kunnen testen. In dit voorbeeld is in de html de tekst rood en de handtekening blauw. De kleurtjes zijn alleen om te testen of het werkt.
Code:
Sub Test()
    Dim handtekText
    Dim handtekHtml
    handtekText = "Met vriendelijke groeten."
    handtekHtml = "<div style='color: #0000ff;'>Met vriendelijke groeten.</div>"
    Application.ActiveInspector.CurrentItem.Subject = "Overgeslagen factuur  - " & Application.ActiveInspector.CurrentItem.Subject
    With Application.ActiveInspector.CurrentItem
        .Body = "Beste klant," & vbCrLf & "Bijgaand de factuur." & vbCrLf & handtekText
        .HTMLBody = "<div style='color: #ff0000;'>Beste klant,<br>Bijgaand de factuur.<br></div> & handtekHtml
    End With
End Sub
 
Laatst bewerkt:
Of voeg een handtekening generator toe aan het netwerk. Dan is het gelijk goed voor alle mailboxen. Wel even zorgen dat de ERP mail via de juiste mailservers naar buiten gaat.
 
Voorbeeldje voor je.
Pak deze zip uit in C:\ naar OLSignature.
Bekijk bijlage OLsignature.zip
Dat is een standaard Outlook handtekening met een kleine aanpassing in het .htm bestand voor verwijzing naar het plaatje.

En dan dit in je test Sub:
Code:
Sub Test()
    SigFile = "C:\OLsignature\Helpmij.htm"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set readf = FSO.OpenTextFile(SigFile, 1)
    Sig = readf.ReadAll
    readf.Close
    Application.ActiveInspector.CurrentItem.Subject = "Overgeslagen factuur  - " & Application.ActiveInspector.CurrentItem.Subject
    With Application.ActiveInspector.CurrentItem
        .HTMLBody = "Beste klant, <br><br>Bijgaande factuur lijkt te worden overgeslagen bij de betalingen. Wilt u een en ander nakijken. Als er iets mee aan de hand is hoor ik het graag.<br>" & Sig
    End With
End Sub
 
Laatst bewerkt:
Beste allen,

Weer hartelijk dank voor het meedenken. De oplossing van Edmoor werkt perfect!! Geweldig dit forum.

Ter info
@OctaFish: Vanuit Excel lukt het mij uitstekend om een email met bijlage te maken én mijn HTML handtekening erbij te plaatsen met onderstaande code (maar misschien begrijp ik u verkeerd...)
Code:
Sub Mail_bestand()

    Dim OutApp As Object
    Dim OutMail As Object
    Sheets("overzichtsblad").Visible = True

    excelformaat = Range("data!d55")
    pdfformaat = Range("data!d56")
    ontvanger = Range("Overzichtsblad!b8")
        If excelformaat = "Waar" Then FilenameE = Range("data!d46") Else FilenameE = ""
        If pdfformaat = "Waar" Then FilenameP = Range("data!d47") Else filenmameP = ""
    
        If excelformaat = "" Or excelformaat = "Onwaar" Then
        If pdfformaat = "" Or pdfformaat = "Onwaar" Then
            MsgBox "Er is geen selectie gemaakt", vbCritical, "Bouwcenter Esselink - Waarschuwing!"
            Exit Sub
        End If
        End If
    
    If excelformaat = "onwaar" And pdfformaat = "onwaar" Then Exit Sub
    
        
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
      
    mail_body = "<FONT face=Verdana>" & Range("data!d53")
    
    On Error Resume Next
    With OutMail
        .To = ontvanger
        .CC = ""
        .BCC = ""
        .Subject = "tekst" & Range("data!d39")
        .Attachments.Add FilenameE
        .Attachments.Add FilenameP
        .Display
        .HTMLBody = mail_body & .HTMLBody
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing

Hartelijk groet Albert
 
In een multipart (html/text) email moet een tekst altijd 2 keer zijn opgenomen, namelijk een html versie en een plain text versie. Even in VBA uitgezocht, in de docs van Microsoft staat dat bij gebruik van de .HTMLBody (html versie) onmiddellijk de .Body (plain text versie) wordt aangepast zodat je niet zelf een .Body hoeft te maken.

Update: het gebruik van <FONT face=Verdana>.........</FONT> werkt alleen goed op Windows., niet op Mac of mobiel of Linux, die zullen een vervangend lettertype gebruiken die hier op lijkt. Je weet dus niet hoe het op een ander apparaat eruit ziet. Je kan beter een font-stack opgeven zodat er een fallback is als een lettertype niet op het apparaat aanwezig is. Hier vind je de minimale font-stacks In jouw geval bij Verdana:
Code:
<SPAN STYLE=""font-size: 12px; font-family: Verdana, Geneva, sans-serif;"">
hier staat jouw tekst
</SPAN>

of wat moderner

<SPAN STYLE=""font-size: 12px; font-family: ""-apple-system"", BlinkMacSystemFont, ""Segoe UI"", Roboto, ""Helvetica Neue"", Arial, ""Noto Sans"", sans-serif;"">
hier staat jouw tekst
</SPAN>
 
Laatst bewerkt:
@OctaFish: Vanuit Excel lukt het mij uitstekend om een email met bijlage te maken én mijn HTML handtekening erbij te plaatsen met onderstaande code (maar misschien begrijp ik u verkeerd...)
Ik heb niet gezegd dat je het niet kon programmeren :). Die code heeft elke helper denk ik wel klaar liggen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan