Размещение изображений за текстом в сообщении электронной почты с помощью asp AlternateView - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь разместить изображения в письме, которое отправляю с использованием класса "MailMessage". Я использую «AlternateView» для подключения сообщений к самой почте.

В моем «mailBody» я использую html с css, который позиционирует все, используя z-index, но почта кажется игнорируйте CSS и просто размещайте изображения одно за другим. Вот мой mailBody -

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <img src="cid:background" style="position:absolute; width:100%; height:100%; z-index:0" />
    <img src="cid:girl" style="position:absolute; width:837px; height:267px; z-index:1" /><br />
    <div style="z-index:1; position:absolute; top:300px; left: 20px; right: 20px; color:#4A8DEB">
    text
    </div>
    <img src="cid:logo" style="position:absolute; width:200px; bottom:50px; left:318px; z-index:1" />
    <img src="cid:lines" style="position:absolute; width:837px; bottom:0px; z-index:1" />
</body>
</html>

Код, который я использую для создания почты: -

string mailBody = File.ReadAllText(Server.MapPath("~/Images/MailPreview.html"));
                mailBody = mailBody.Replace("text", content);

                LinkedResource headerImage = CreateLinkedResource("~/Images/girl for multi.jpg", "girl", false);
                LinkedResource logoImage = CreateLinkedResource("~/Images/logo MuLTi-6.png", "logo", true);
                LinkedResource footerImage = CreateLinkedResource("~/Images/Colored Lines-03.jpg", "lines", false);
                LinkedResource backgroundImage = CreateLinkedResource("~/Images/Email Background.jpg", "background", false);

            AlternateView av = AlternateView.CreateAlternateViewFromString(mailBody, null, MediaTypeNames.Text.Html);
            av.LinkedResources.Add(headerImage);
            av.LinkedResources.Add(logoImage);
            av.LinkedResources.Add(footerImage);
            av.LinkedResources.Add(backgroundImage);

            MailMessage mail = new MailMessage();
            mail.AlternateViews.Add(av);
            mail.From = new MailAddress("info@multi4all.com");
            mail.To.Add(address);
            mail.Subject = title;

            ContentType mimeType = new System.Net.Mime.ContentType("text/html");
            AlternateView alternate = AlternateView.CreateAlternateViewFromString(mailBody, mimeType);
            mail.AlternateViews.Add(alternate);

Хотел бы получить совет о том, как я могу достичь своей цели (я хочу фон изображение за всем остальным).

...