Skip to main content
 首页 » 编程设计

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

2024年02月02日29bjzhanghao

我有一个问题要发送带有 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 与 Alternateviews 结合使用效果很好。 比硬编码 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);