使用日历邀请和html发送电子邮件无法正确显示

时间:2018-10-08 06:31:55

标签: c# iphone email outlook icalendar

我正在尝试发送包含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。

我已经为此努力了一个星期,任何帮助将不胜感激。

0 个答案:

没有答案