我正在尝试使用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”,但没有成功。
想点什么吗?
非常感谢, 阿萨弗。
答案 0 :(得分:3)
对于电子邮件,你不应该给像“/Images/blabla-logo.png”这样的相对路径作为内部网站页面的唯一作品,而不是你应该给出完整的路径
http://youserver/youapp/Images/blabla-logo.png
我建议您不要使用路径包含图片,而不是尝试在您的电子邮件中嵌入图片。您可以通过将图像转换为base64字符串并将base64字符串设置为图像源来实现此目的。
答案 1 :(得分: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>
您的密码恢复标记应如下所示:
<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"));
}
应该这样做。
答案 2 :(得分:0)
尝试添加代字号“〜”,id和runat =“server”。当应用runat =“server”时,波形符只会更改为根路径。否则,服务器端代码不知道控件,也不解析它并应用路径插入
<img alt="blabla" src="~/Images/blabla-logo.png"
align="middle" id="img" runat="server"/>
答案 3 :(得分:0)
您是否尝试过使用AlternateView?
一个例子是here。