【问题标题】:Sending mail with input file and images发送带有输入文件和图像的邮件
【发布时间】:2012-01-24 18:21:48
【问题描述】:

如何发送正文是用户在 (Fileupload) 中选择的 html 文件且 html 文件有图像的电子邮件?

我想将图像嵌入到正文中。

【问题讨论】:

  • 上传的HTML中的图片标签是否引用了图片?因为那时您还需要用户上传这些内容。
  • 我想自己从 src 获取 img。示例:
  • 您无法从src 获取图像,因为您无法读取用户的本地驱动器。据推测,图像不存在于您的服务器上您的用户知道的位置。

标签: asp.net html image email file-upload


【解决方案1】:

如果您询问如何在电子邮件中包含图片,请尝试此页面:http://www.systemnetmail.com/faq/4.4.aspx

【讨论】:

  • 此外,有时使用内联附件而不是链接资源会更好,因为由于某些原因,outlook web access(owa) 不显示链接资源。
  • +1 不知道 System.Net.Mail 上的 Linked Resource 选项。
【解决方案2】:

在 html 中嵌入图像的最通用方法是将图像字节转换为 base64 字符串并将 img 元素的 src 属性设置为 base64 字符串。

例如,您可以按如下方式构造 HTML:

<img src="data:image/gif;base64,R0lGODlhDwAPAKECAAAAzMzM/////
wAAACwAAAAADwAPAAACIISPeQHsrZ5ModrLlN48CXF8m2iQ3YmmKqVlRtW4ML
wWACH+H09wdGltaXplZCBieSBVbGVhZCBTbWFydFNhdmVyIQAAOw=="
alt="Base64 encoded image" width="150" height="150"/>

当然,您需要将图像字节转换为 base64 编码。示例:

string base64String = Convert.ToBase64String(imageBytes);

【讨论】:

  • 此方法在hotmail中显示一个灰色框,如何禁用灰色框。
  • @Wergenwol:这很可能是 hotmail 设置。大多数提供商默认阻止 HTML 电子邮件中的图像,除非用户单击某种链接以允许显示图像。
猜你喜欢
  • 2012-04-07
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 2011-06-01
  • 2017-04-21
  • 2013-06-01
相关资源
最近更新 更多