c# - 如何在电子邮件正文部分发送外部图像?

标签 c# html .net image email

我想发送包含带有图像的HTML 内容 的电子邮件。因此,任何在正文内容中发送外部图像的方式都不能作为附件。

我的图像位于我项目的 image 文件夹下...

最佳答案

假设您使用的是 .net MailMessage您可以设置的类型 IsBodyHtml = true;然后写下你的 <img>像通常使用绝对路径一样使用标签,例如www.example.com/images/image.png .

为了简洁起见,我从一个 XML 文件中读取我的 HTML,例如

private MailMessage GetHtmlEmail()
{
    MailMessage mail = new MailMessage();
    XmlTextReader xReader = new XmlTextReader(Server.MapPath("~/ConfigFiles/Email.xml"));

    while (xReader.Read())
    {
        switch (xReader.Name)
        {
            case "ToAddress":
                mail.To.Add(xReader.ReadElementContentAs(typeof(string), null).ToString());
                break;
            case "FromAddress":
                mail.From = new MailAddress(xReader.ReadElementContentAs(typeof(string), null).ToString());
                break;
            case "Subject":
                mail.Subject = xReader.ReadElementContentAs(typeof(string), null).ToString();
                break;
            case "EmailBody":
                mail.Body = xReader.ReadElementContentAs(typeof(string), null).ToString();
                break;
            default:
                break;
        }
    }

    return mail;
}

还有 XML 文件...

<?xml version="1.0" encoding="utf-8" ?>
<Email>
    <FromAddress>website@domain.co.uk</FromAddress>
    <ToAddress>to@domain.co.uk</ToAddress>
    <Subject>Contact us enquiry</Subject>
    <EmailBody>
        <![CDATA[
        <html>
           <head>
              <title>Customer Enquiry</title>
           </head>
            <div valign="top">
                <!-- center -->
                <font color="#666666" face="Arial, Helvetica, sans-serif, Verdana" size="2">
                  <p>You have recieved a new customer enquiry.</p>
                  <p><strong>Name: </strong>{0}<br />
                  <strong>Email: </strong>{1}<br />
                  <strong>Tel: </strong>{2}<br /></p>
                  <p><strong>Message: </strong>{3}</p>
                </font>
            </div>
          </html> 
      ]]>
    </EmailBody>
</Email>

关于c# - 如何在电子邮件正文部分发送外部图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14599623/

相关文章:

c# - 如何在多页中打印一张大图像?

c# - 换行符未添加到字符串

c# - .NET WCSF 作为基于门户网站的 UI 堆栈选择?

html - 为什么Internet EXPLORER中的3位十六进制颜色代码值解释不同?

javascript - 使用存储在数组中的 id 获取元素偏移量

.net - .NET 框架的平台独立程度

c# - 如何使用 ANTLR 获得正确的编码?

html - 当我将鼠标悬停在 div 标签外侧时,图标开始闪烁

c# - 避免 Task 和 Task<T> 的重复方法

.net - .NET COM 对象迁移到 64 位