【问题标题】:How add image in html email template using windows application如何使用 Windows 应用程序在 html 电子邮件模板中添加图像
【发布时间】:2018-08-20 09:34:30
【问题描述】:

我正在创建 Windows 应用程序,我将在其中发送 emailtemplate.htm 文件。

我想知道如何在 html 模板中加载图片。

我试过了

  1. 尝试使用 img src 添加图像不起作用。

TestEmail.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Welcome to GrassDew</title>
</head>
<body>
    <div style="border-top:3px solid #22BCE5">&nbsp;</div>
    <span style="font-family:Arial;font-size:10pt">
        A new article has been published .<br /><br />
        <a style="color:#22BCE5" href="https://www.google.com/">NEw Article</a><br />
        <br /><br />
    </span>
    Thanks,<br />
    Team<br />
    <img src="../images/signature.png" /><br /><br />
</body>
</html>

CS 代码:

        string strBody = string.Empty;
        Assembly assembly = Assembly.GetExecutingAssembly();
        string assemblyName = assembly.GetName().Name;
        string emailTemplateName = "TestEmail.htm";
        emailTemplateName = assemblyName + "." + emailTemplateName;
        //StreamReader reader = new StreamReader(assembly.GetManifestResourceStream("oMail.Win.TestEmail.htm"));
        using (StreamReader reader = new StreamReader(assembly.GetManifestResourceStream(emailTemplateName)))
        {
            strBody = reader.ReadToEnd();
        }
        strMsg.Body += "<span style = font-family:Calibri;font-size:14pt>Dear " + customrname + "</span><br/>" + strBody;
        strMsg.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8");
        System.Net.NetworkCredential smtpCredential = new System.Net.NetworkCredential(strSMTPServerHostUserName, strSMTPServerHostPassword, strSMTPServerDomain);
        SmtpClient smtpClient = new SmtpClient(strSMTPServerHost, Convert.ToInt32(strSMTPServerPort));
        smtpClient.Credentials = smtpCredential;
        smtpClient.Send(strMsg);
        bEmailSentSuccessful = true;

【问题讨论】:

  • 请附上您的代码以便我们调试
  • 附加代码@OngaLeo-YodaVellem

标签: c# asp.net windows winforms


【解决方案1】:

您可以使用base64 字符串作为图像的来源。它就像您的html 中的嵌入图像。

你的src 应该是这样的

src="data:image/jpeg;base64, LzlqLzRBQ...<!-- base64 data -->"

例如:

 Image Red Dot <img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
    9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

您可以在 google 中找到如何将图像转换为 base64 字符串。例如检查这个link

编辑:

当您将 html 作为电子邮件发送时,../images/signature.png 将无法解析,它应该是到服务器的路径,例如“http://myserver/images/image.jpeg”或 base64 字符串。

【讨论】:

  • 当您想发送电子邮件时,最好将图像的服务器 url 或 base64 字符串作为来源。" ../images/" 在收到电子邮件时将不起作用。尝试使用 base64-image.de 对您的图像进行编码并更新您的 html。你会得到输出。
  • 尝试添加 base64 字符串作为源。还有其他方法吗?
  • 给出一个完整的路径,如myserver/images/image.jpeg。它不能是 ../images 。请注意,当您在浏览器上键入路径时,您应该会得到图像。
猜你喜欢
  • 2020-10-04
  • 1970-01-01
  • 2015-05-29
  • 2017-08-31
  • 2016-02-13
  • 2023-02-23
  • 2013-03-27
  • 1970-01-01
相关资源
最近更新 更多