如何在 ASP.NET 中使用图像作为 html 邮件的背景



我有一个问题要发送带有html和附件作为嵌入式图像的邮件。我不知道如何使用图像文件夹中的图片作为div的背景。

这是我的代码:

SmtpMail oMail = new SmtpMail("TryIt");
            SmtpClient oSmtp = new SmtpClient();
            oMail.From = "test@emailarchitect.net";
            oMail.To = "<my email>";
            oMail.Subject = "test";
            SmtpServer oServer = new SmtpServer("<smtp server>");
            try
            {
               // Attachment header = oMail.AddAttachment("d:\mail_header.jpg");
                Attachment header = oMail.AddAttachment("images/mail_header.jpg"); // this don't work
                Attachment oAttachment = oMail.AddAttachment("d:\bg_content.jpg");
                Attachment Footer = oMail.AddAttachment("d:\mail_footer.jpg");
                string contentID_header = "header";
                header.ContentID = contentID_header; 
                string contentID = "test001@host";
                oAttachment.ContentID = contentID;
                string contentID_footer = "footer";
                Footer.ContentID = contentID_footer; 
//how I can use a pic as background
                oMail.HtmlBody = "<html><body>"+
                                    "<div style='background-image:url(" + contentID_header + ");width: 800px;height: 50px'></div>" +
                                    "<div><img src="cid:" + contentID + ""></div>" +
                                    "<div><img src="cid:" + contentID_footer + ""></div>" +
                                    "</body></html>";
                oSmtp.SendMail(oServer, oMail); 
            }
            catch (Exception ep)
            {
                txtSimulate.Text = ep.Message; 
            } 

我使用这段代码,它使用带有替代视图LinkedResources工作得很好。比硬编码 CIDS 好得多。

检查一下:

System.Net.Mail.MailMessage Mensaje = new System.Net.Mail.MailMessage("mail@host.com",DireccionCorreo);
System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(Body, null, "text/html");

System.Net.Mail.LinkedResource logo = new System.Net.Mail.LinkedResource("logoimage.jpg");
logo.ContentId = "logoimage";
htmlView.LinkedResources.Add(logo);
System.Net.Mail.LinkedResource logoExchange = new System.Net.Mail.LinkedResource("logoexchange.png");
logoExchange.ContentId = "logoexchange";
htmlView.LinkedResources.Add(logoExchange);
System.Net.Mail.LinkedResource tut1 = new System.Net.Mail.LinkedResource(Application.StartupPath + "/OutlookGuide/tut1.jpg");
tut1 .ContentId = "tut1";
htmlView.LinkedResources.Add(tut1 );
System.Net.Mail.LinkedResource tut2 = new   System.Net.Mail.LinkedResource(Application.StartupPath + "/OutlookGuide/tut2.jpg");
tut2.ContentId = "tut2";
htmlView.LinkedResources.Add(tut2);

Mensaje.AlternateViews.Add(htmlView);
我不知道

asp.net 但是使用PHP,我们将图像转换为Base64编码,然后使用

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />

您必须提供图像的完整路径。

首先,我找到了这个项目。

但基本上,将图像"嵌入"在电子邮件本身中,您需要将其添加为链接资源,并在电子邮件的HTML中引用附加的资源。

相关内容

  • 没有找到相关文章

最新更新