2010-07-13 100 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