2014-01-07 59 views
-1

場景:我有一個delphi 7應用程序,我有一個函數可以使用base64編碼和MIME類型發送帶有嵌入式圖像的郵件。如何發送帶有base64嵌入式圖像的電子郵件

電子郵件的正文:

the message 
<hr> 
<img width=213 height=120 src="cid:CidKey"/> <!-- Important! here is the cid reffered to the cid that i previously set on the code! --> 
<hr> 
some text 

問題:電子郵件到我這裏來,我在Gmail採用了灰色框,而不是一個圖像。

我已經試過:我試圖改變MIME:Content-Type和等,對很多類型,如text/htmlimage/jpegalternative/mixed等等

做我想做的:我想只需發送一封電子郵件,該電子郵件可以在base64中正確包含可見圖像的簽名(某些文本)。

+1

可能的重複:http://stackoverflow.com/questions/4312687/how-to-embed-images-in-email或http://stackoverflow.com/questions/9110091/base64-encoded-images-in-電子郵件簽名 – John

+0

不重複。你提到這個圖像的問題不是base64,開發語言是php而不是delphi –

+0

,但是MIME部分很有趣,也很有用,謝謝。 –

回答

0

我自己找到了解決方案,問題在於MIME。

之前,我是發送電子郵件只有一個MIME類型是:Content-type: text/html

而現在,我創建了一個包含一個TMimeMessTMimepart的爲Multiparts

var 
    m    : TMimemess; 
    SubPartSignature, 
    mix    , 
    rel    : TMimepart; 

    m := TMimemess.create; 

    mix := m.AddPartMultipart('mixed',nil); 
    rel := m.AddPartMultipart('related', mix); 

    m.AddPartHTML(FstlMensagemHTML, mix);//note that the FstlHTMLMessage is the body html of the email 
    SubPartSignature := m.AddPartHTMLBinary(cprdbutils.getBlob_StringStream(dts.FieldByName('bl_logo')), 'logo.jpg', 'CidKey', rel); 
    rel.AddSubPart; 
    rel.AssignSubParts(SubPartSignature); 

cprdbutils.getBlob_StringStream(dts.FieldByName('bl_logo'))返回功能來自數據庫blob字段的圖像流。

而且功能AddPartHTMLBinary()是在這裏:

function TMimeMess.AddPartHTMLBinary(const Stream: TStream; const FileName, Cid: string; const PartParent: TMimePart): TMimepart; 
begin 
    Result := AddPart(PartParent); 
    Result.DecodedLines.LoadFromStream(Stream); 
    Result.MimeTypeFromExt(FileName); 
    Result.Description := 'Included file: ' + FileName; 
    Result.Disposition := 'inline'; 
    Result.ContentID := Cid; 
    Result.FileName := FileName; 
    Result.EncodingCode := ME_BASE64; //this is a constant containing base64 
    Result.EncodePart; 
    Result.EncodePartHeader; 
end; 

這裏是電子郵件的正文HTML:

the message 
<hr> 
<img width=213 height=120 src="cid:CidKey"/> <!-- Important! here is the cid reffered to the cid that i previously set on the code! --> 
<hr> 
some text 

現在,它完美的作品。

相關問題