簡體   English   中英

發送帶有簽名圖像的電子郵件Outlook 2016 VBA

[英]Send email with signature images outlook 2016 VBA

我已經按照教程使用提醒和日歷約會發送自動電子郵件。
“基礎”來自https://www.extendoffice.com/documents/outlook/1567-outlook-send-schedule-recurring-email.html
問題在於簽名中的圖像變為html標簽。
羅恩·布魯因(Ron de Bruin)的代碼在這里: https : //www.rondebruin.nl/win/s1/outlook/signature.htm可以在html中添加簽名,並且幾乎可以正常工作。

我得到正確的文本,字體,顏色和鏈接,但是圖像是帶有紅色x的空框。
我查看了消息的來源,似乎簽名的代碼抓住了硬編碼的相對img來源。
因此,我嘗試添加“替換”代碼以將消息中的源代碼編輯為絕對路徑。
而且有效! 但僅在我的計算機上。 圖像未添加,它們只是鏈接到。

有解決方案的人如何添加 (或附加)圖像以使簽名看起來正確?

Private Sub Application_Reminder(ByVal item As Object)
    Dim MItem As MailItem
    Set MItem = Application.CreateItem(olMailItem)

    If item.MessageClass <> "IPM.Appointment" Then
        Exit Sub
    End If
    If item.Categories <> "Beställa material mail" Then ' make sure it's correct category
        Exit Sub
    End If

    If Now > item.End + 6 / 24 Then ' if the appointment time was when computer was off (or long delay) don't email.
        MsgBox item.Subject & " är inte skickat för att det är för sent." ' "subject" is not send because it's too late.
        Exit Sub
    End If

    'Below is from https://www.rondebruin.nl/win/s1/outlook/signature.htm
    SigString = Environ("appdata") & "\Microsoft\Signatures\Axfood.htm"

    If Dir(SigString) <> "" Then
        Signature = GetBoiler(SigString)
    Else
        Signature = ""
    End If

    'replace incorrect img sources.
    Signature = Replace(Signature, "src=" & Chr(34) & "Axfood-filer/image", "src=" & Chr(34) & Environ("appdata") & "/Microsoft/Signatures/Axfood-filer/image")

    ' send email
    MItem.To = item.Location
    MItem.Subject = item.Subject
    MItem.HTMLBody = item.Body & Signature
    MItem.Send
    Set MItem = Nothing
End Sub


Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
    Dim fso As Object
    Dim ts As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
    GetBoiler = ts.readall
    ts.Close
End Function

編輯;

Outlook簽名文件中的示例img源:
<img border=0 width=21 height=21 src="Axfood-filer/image010.jpg" v:shapes="_x0000_i1030">

使用代碼中的替換功能將其編輯到硬盤上的絕對路徑。

簽名文件可以位於: C:\\Users\\<USER>\\AppData\\Roaming\\Microsoft\\Signatures

我找到了適用於Outlook 2016的答案,並在Android / iPhone上給出了“確定”結果。

我通過vba附加圖像,並使用html代碼內聯它們。

Dim oAttach As Outlook.Attachment
Dim colAttach As Outlook.Attachments

Set colAttach = MItem.Attachments

' attach the images to the email
Set oAttach = colAttach.Add(Environ("appdata") & "/Microsoft/Signatures/Axfood-filer/image001.png")
Set oAttach = colAttach.Add(Environ("appdata") & "/Microsoft/Signatures/Axfood-filer/image003.jpg")
Set oAttach = colAttach.Add(Environ("appdata") & "/Microsoft/Signatures/Axfood-filer/image005.jpg")
Set oAttach = colAttach.Add(Environ("appdata") & "/Microsoft/Signatures/Axfood-filer/image007.jpg")
Set oAttach = colAttach.Add(Environ("appdata") & "/Microsoft/Signatures/Axfood-filer/image009.jpg")

'add the images to signature string with html formatting.
Signature = Signature & "<a href='http://www.axfood.se'><IMG alt='' hspace=0 src='cid:image001.png' align=baseline width=151 border=0></a><br><br>"
Signature = Signature & "<a href='https://www.facebook.com/axfoodkoncernen/'><IMG alt='' hspace=0 src='cid:image003.jpg' align=baseline border=0></a> "
Signature = Signature & "<a href='https://twitter.com/axfood'><IMG alt='' hspace=0 src='cid:image005.jpg' align=baseline border=0></a> "
Signature = Signature & "<a href='https://www.linkedin.com/company/axfood'><IMG alt='' hspace=0 src='cid:image007.jpg' align=baseline border=0></a> "
Signature = Signature & "<a href='https://www.instagram.com/axfoodkoncernen/'><IMG alt='' hspace=0 src='cid:image009.jpg' align=baseline border=0></a> "

結果是正確的Outlook電子郵件。
在Android上,圖像已附加但未嵌入電子郵件中。
在iPhone上,圖像以電子郵件形式內聯,但是鏈接沒有跨越圖像。

iPhone示例:
鏈接鏈接鏈接鏈接
圖片圖片圖片圖片

而不是形象的實際鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM