我有一个问题是将带有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;
}
答案 0 :(得分:2)
我使用此代码,使用 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);
答案 1 :(得分:1)
我不知道asp.net但是使用PHP我们通过将图像转换为Base64编码然后使用
来实现<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />
答案 2 :(得分:1)
你必须提供完整的图像路径。
答案 3 :(得分:1)
首先,我发现了project。
但基本上,将图片“嵌入”在电子邮件本身中,您需要将其添加为Linked Resource,并在电子邮件的HTML中引用附加的资源。