Мы пытаемся отправить автоматические поздравления с днем рождения через unix sendmail.Как часть этого, у нас есть шаблон изображения, в котором есть пустое место для добавления текста (имя человека в день) над изображением.
Мы можем отправить изображение в виде встроенного почтового тела, но не можем добавить текст поверхизображение с кодом ниже:
sendmail -t <<EOT
TO: $email
FROM: <ACCTeam@DoNotReply>
SUBJECT: Happy Birthday $name !!!
MIME-Version: 1.0
Content-Type: multipart/related;boundary="XYZ"
--XYZ
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
<style type="text/css">
#container {
height: 400px;
width: 400px;
position: relative;
}
#image {
position: absolute;
left: 0;
top: 0;
}
#text {
z-index: 100;
position: absolute;
color: white;
font-size: 72px;
font-weight: bold;
left: 135px;
top: 150px;
}
</style>
</head>
<body bgcolor="#ffffff" text="#000000">
<div id="container">
<img id="image" src="cid:part1.06090408.01060107" alt="">
<p id="text">
$name
</p>
</div>
</body>
</html>
--XYZ
Content-Type: image/jpeg;name="img.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part1.06090408.01060107>
Content-Disposition: inline; filename="img.jpg"
$(base64 img.jpg)
--XYZ--
EOT
Мы просто получаем изображение по почте, но не текст поверх него.Я что-то упустил?
РЕДАКТИРОВАТЬ: Как предложил Матиас Барриос, изменил цвет шрифта, и я могу видеть имя в моей почте (внешний вид), но имя находится под изображением, а не над изображением.HTML / CSS часть скрипта работает правильно, если открыта как HTML-страница через браузер, но не в скрипте оболочки.