在 Delphi 中,我使用以下代碼以 HTML 格式創建電子郵件以在訊息中顯示簽名:
cMsg:= cMsg ' <img src="BarrysSignature.jpg" '>
這意味著我需要.jpg在當前目錄中有可用的(并與可執行檔案一起分發)。
我還在.jpg程式的其他地方使用了這些相同的簽名檔案,但我已將它們作為資源加載。如果我在電子郵件中使用資源作為簽名,而不是外部.jpg圖片,那么在電子郵件中會更好。
我已經嘗試了幾種方法來做到這一點,但無法讓它發揮作用。請問有什么想法嗎?
uj5u.com熱心網友回復:
與@Dmitry 的回答類似,在 Indy 中,您還需要將影像資料附加到電子郵件(TIdMessage組件),分配附件的Content-ID標題(TIdMessagePart.ContentID屬性),然后cid:在需要的地方使用URL參考 HTML 中的該 ID 。
有關如何執行此操作,請參閱 Indy 網站上的這些博客文章:
HTML 訊息
新的 HTML 訊息生成器類
不過,我確實想提一件事。在文章中討論TIdAttachmentFile用于附件的地方,在這種情況下,您實際上根本不需要將影像資源保存到臨時檔案中。您也可以派生自己的類從TIdAttachment(姑且稱之為TIdAttachmentResource),并用它覆寫虛擬OpenLoadStream()和CloseLoadStream()方法來回報/免費一TResourceStream到你的資源資料,分別為(查看源代碼TIdAttachmentFile和TIdAttachmentMemory的例子)。然后你可以根據需要簡單地將TIdAttachmentResource物件添加到TIdMessage.MessageParts集合中,Indy 將能夠直接使用影像資源對電子郵件進行編碼,不需要檔案。
uj5u.com熱心網友回復:
在 Outlook 中,您需要將資源提取到臨時檔案中,將影像添加為附件,設定其PR_ATTACH_CONTENT_IDMAPI 屬性,洗掉檔案。您的 HTML 正文需要通過其內容 ID 來參考影像,例如<img src="cid:xyz">,其中“xyz”是PR_ATTACH_CONTENT_ID屬性的值。
請參閱在 Outlook 電子郵件中包含圖片
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/386625.html
上一篇:分立原件負反饋電路分析
