使用C#在ASP.NET代码隐藏中创建HTML img标记

时间:2014-09-24 11:40:35

标签: c# html asp.net image

我正在尝试在代码隐藏中创建一个img标记并通过电子邮件发送(在电子邮件正文中不作为附件发送)。

body += "<p><img src='" + imageUrl.Remove(0,2) + "' alt='Product Image' width='250px' height='250px' runat='server' /></p>";

NB:我已将body声明为字符串,我正在为其添加其他HTML控件(例如p,h1,li等)。

imageUrl变量返回&#34;〜/ Images / bag / name_of_image.jpg&#34; 因此我删除前两个字符〜/。

似乎它正在创建图像,但它没有显示在电子邮件正文中。

4 个答案:

答案 0 :(得分:0)

我建议您在电子邮件正文中使用嵌入图片。请查看以下网址:

  1. http://www.emailarchitect.net/easendmail/kb/csharp.aspx?cat=8
  2. Send inline image in email

答案 1 :(得分:0)

您需要在电子邮件中包含图像的绝对路径。

电子邮件中嵌入的图片应该是:

<img src="http://www.example.com/image_link.jpg" alt="Some Image" />

但是,您可以在电子邮件中嵌入:

<img src="image_link.jpg" alt="Some Image" />

作为电子邮件应用程序,用户无法获得image_link.jpg的副本,但它无法显示。

因此,在您的过程中,您可能需要将图像上传到外部可访问的网络服务器(如果是在网络外部访问)或至少是内部可访问的网络服务器。

答案 2 :(得分:0)

请按以下方式进行。只需删除&#34;〜&#34;来自SRC。

 string mainUrl = "http://testURL.com/"; //its just example, you can put this in web config as well and than retrive it

 body += "<p><img src='" + mainUrl + imageUrl.Remove(0,1) + "' alt='Product Image' width='250px' height='250px' runat='server' /></p>";

希望这会对你有所帮助,

由于

答案 3 :(得分:0)

如果您使用本地路径将图像嵌入到电子邮件中,则无法从远程接收者访问此图像。

这是基本的;用户使用任何电子邮件客户端程序(outlook,thunderbird或webmail等)打开您的电子邮件,并且电子邮件客户端程序使用其路径搜索此图像。如果path是本地的,那么电子邮件客户端程序如何访问此图像?

您必须提供一个公共可访问路径,电子邮件客户端可以访问您的图像文件并加载,然后将其显示给用户。

然后将图像上传到服务器,然后使用服务器地址指定图像路径。

示例:

string domainName = @"http://lindaLinda.com/images/";
string imageFileName = "myFirstEmailImg.jpg";
body += @"<p><img src='" + domainName + imageFileName +"' alt='Product Image' width='250px' height='250px' runat='server' /></p>";

它提供此输出:

<p><img src='http://lindaLinda.com/images/myFirstEmailImg.jpg' alt='Product Image' width='250px' height='250px' runat='server' /></p>