我正在尝试发送包含html和内嵌图像以及日历邀请(.ics)的邮件。我已经测试过这两个元素至少可以单独工作。
如果我使用Gmail.com查看邮件,它将正确显示所有元素。在邮件顶部显示有关事件的信息,并显示带有图像的文本。问题是,根据我创建alternateViews的顺序,它可以与Outlook或Iphone一起使用,始终与gmail.com/gmailclient一起使用,但不能同时使用所有三个。
SmtpClient sc = new System.Net.Mail.SmtpClient(IP);
MailMessage msg = new MailMessage();
msg.From = new System.Net.Mail.MailAddress("demomail@hotmail.com", "bob");
string mailTo = "client@gmail.com";
msg.To.Add(new MailAddress(mailTo, "Client Name"));
msg.Subject = "Send Calendar Appointment Email";
string mailBody = $"<br><div class=\"dagsordenMødeDato\"> Her er dagsordenen for mødet 10-10-2018 14:45:00 </div><br> <br><ul class=\"dagsordenListe\"><li>Leasing til dig</li><li>Pension</li><li>Garantkunde</li><li>Dine fordele</li></ul><br> <div class=\"bekrivelseAfVedhæftning\">Jeg har vedhæftet et dokument.</div>";
string icsContent = System.IO.File.ReadAllText(@"H:\hjemmelavetICS.ics");
如果代码中将日历的alternateView放置在HTML的alternateView之前,则可以在iPhone的“邮件”上使用
ContentType contype = new ContentType("text/calendar");
contype.Parameters.Add("method", "REQUEST");
contype.Parameters.Add("name", "Invitation.ics");
contype.CharSet = "utf-8";
AlternateView avCal =
AlternateView.CreateAlternateViewFromString(icsContent, contype);
msg.AlternateViews.Add(avCal);
LinkedResource inlineRådgiver = new LinkedResource(
@"K:\MEDARBEJDERBILLEDER\Signatur Notes\" + "fn" + ".jpg",
MediaTypeNames.Image.Jpeg);
inlineRådgiver.ContentId = "raadgiverID";
inlineRådgiver.ContentType.Name = "Raadgiver.jpg";
LinkedResource inlineKampagne = new LinkedResource(
@"K:\MEDARBEJDERBILLEDER\Signatur Notes\" + "Kampagne" + ".jpg",
MediaTypeNames.Image.Jpeg);
inlineKampagne.ContentId = "kampagneID";
inlineKampagne.ContentType.Name = "Kampagne.jpg";
var htmlContentType =
new System.Net.Mime.ContentType("text/html");
htmlContentType.CharSet = "utf-8";
string embededHtml =
"<a href=\"https://www.sparthy.dk/\"><img src=cid:raadgiverID alt=\"medarbejder\"></p></a><a href=\"https://www.sparthy.dk/om-sparekassen/nyheder-generelt/1912-garantmoder-2018\"><img style=\"border: 0;\" src=cid:kampagneID alt=\"kampagne\"></a>";
string fullHtml = mailBody + embededHtml;
var avHtmlBody = AlternateView.CreateAlternateViewFromString(fullHtml, htmlContentType);
avHtmlBody.LinkedResources.Add(inlineRådgiver);
avHtmlBody.LinkedResources.Add(inlineKampagne);
msg.AlternateViews.Add(avHtmlBody);
sc.Send(msg);
但是,如果我在日历上添加html的辅助视图,则它适用于Outlook。
我已经为此努力了一个星期,任何帮助将不胜感激。