2010-07-13 33 views
5

我正在嘗試使用ASP.NET的PasswordRecovery。如何將圖像插入電子郵件模板

一切正常,但我使用電子郵件模板。在該電子郵件中我試圖如下插入一張圖片:

<html xmlns="http://www.w3.org/1999/xhtml"> 

<body> 

<img alt="blabla" src="/Images/blabla-logo.png" align="middle"/><br/><br/> 
bla bla:<%Password%><br /><br /> 
</body> 

</html> 

正如我所說的,電子郵件被髮送正常,但圖像沒有插入。我試過了:src =「〜/ Images/blabla-logo.png」,但沒有成功。

想法任何人?

非常感謝, Assaf。

回答

0

您可以使用OnSendingMail事件來修改您的電子郵件。讓我們假設你的模板是這樣的:

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <body> 
    <img alt="blabla" src="{0}" align="middle"/><br/><br/> 
    bla bla:<%Password%><br /><br /> 
    </body> 
</html> 

您PasswordRecovery標記應該是這樣的:

<asp:PasswordRecovery ID="prPasswordRecovery" runat="server" OnSendingMail="prPasswordRecovery_SendingMail"> 
    <MailDefinition BodyFileName="~/passwordRecoveryEmailTemplate.txt" IsBodyHtml="true" Priority="High" Subject="bla bla"/> 
</asp:PasswordRecovery> 

最後要做的事情是在代碼編寫prPasswordRecovery_SendingMail方法背後:

protected void prPasswordRecovery_SendingMail(object sender, MailMessageEventArgs e) 
{ 
    e.Message.Body = String.Format(e.Message.Body, ResolveClientUrl("~/Images/blabla-logo.png")); 
} 

這應該做到這一點。

+0

非常感謝。我不明白爲什麼這不應該工作。我一定在做錯事,但我嘗試過這種方式,但沒有奏效。我仍然收到沒有圖像的電子郵件。 順便說一下,我給了電子郵件模板.htm擴展名,VS標記了src =「{0}」部分,並告訴我找不到該文件。我應該使用文本文件嗎?這很重要嗎? 謝謝你們的幫助,你們真的是最棒的。 – Assaf 2010-07-13 10:28:48

0

嘗試添加波浪號「〜」,一個id和runat =「服務器」。當應用runat =「server」時,代字號僅被更改爲根路徑。否則,服務器端代碼有沒有控制的知識,不分析,並應用路徑插入

<img alt="blabla" src="~/Images/blabla-logo.png" 
align="middle" id="img" runat="server"/> 
+0

非常感謝您的幫助。這一切似乎非常合理。但是,我嘗試過,但沒有奏效。我試圖與它鬥爭一下,但沒有成功。非常感謝。 – Assaf 2010-07-13 10:25:38

+0

嘗試在Firefox中打開頁面,然後打開Firebug插件查看正在播放的路徑。圖像目錄中的圖像是否位於網站的根目錄中?另外,請嘗試從圖像名稱和鏈接中刪除連字符。有不同類型的連字符,它們可能不匹配 – 2010-07-13 10:39:00

3

對於電子郵件,你不應該放棄相對路徑,如「/Images/blabla-logo.png」的唯一適用於內部的網頁,而不是這個,你應該給喜歡

http://youserver/youapp/Images/blabla-logo.png

我會建議你完整的路徑不使用路徑,而不是這種嘗試在電子郵件中嵌入圖片,包括圖像。

+0

那就是我所做的。請始終使用完整路徑參考「實時」服務器上的「實時」圖像。 – 2010-07-22 14:47:09

0

您是否嘗試過使用AlternateView?

一個例子是here

+0

如果你想要C#的例子,那麼你可以看看下面的鏈接。 http://www.codeproject.com/KB/aspnet/inkrajesh.aspx – 2010-07-22 13:54:46