如何在html邮件中使用外部图标

时间:2014-08-05 13:57:56

标签: c# html email

我正在创建一个MailMessage,我将其发送到SMTP服务器(通过SmtpClient)。我已经让它工作得很好,包括html部分(通过在MailMessage中添加IsBodyHtml = true。

我目前在将图像放入html邮件时遇到了一些麻烦。我已经用备用视图和附件进行了尝试,这些附件在某种程度上对我没用。

现在的最后一个版本是从外部来源包含图标,这个图标也不起作用,我想知道这是不可行的,或者我在那里做错了。

邮件中的代码(从smpt服务器(只是图像部分)看到:

<img alt="" hspace=0 border=0 align=baseline src="http://MyWebsite.at/Design/favicon.ico">

我用来将图像放在那里的命令(我正在替换正文中的占位符):

newMail.Body = newMail.Body.Replace("#MyWebsiteLOGO#", "<img alt=\"\" hspace=0 border=0 align=baseline src=\"http://MyWebsite.at/Design/favicon.ico\">");

就像我说的那样将图像部分放入MailAddress(isBodyHtml = true)并且我使用SmtpClient来传输消息。

1 个答案:

答案 0 :(得分:0)

您的代码存在两个问题。首先,大多数电子邮件客户端可能无法处理ico个文件,因此最好坚持使用gifjpg等已知格式。

其次,几乎每个电子邮件客户端都会阻止外部链接。您必须将图像嵌入电子邮件中。你可以通过两种方式解决这个问题:

  1. 在您的c#代码中,将图片添加为LinkedResource对象,并将其作为<img src="cid:nameOfImage.gif" />
  2. 从HTML引用
  3. 将您的图片文件转换为base64并将其直接嵌入HTML源代码中。有各种网站可以帮助您实现此目的,例如:http://webcodertools.com/imagetobase64converter/Create