В настоящее время я пытаюсь отправить электронное письмо, используя хранимую процедуру на SQL сервере (извлечение и отображение данных из некоторых запросов), пытаясь преобразовать HTML Canvas в изображение PNG и отправить его в теле письма ( без вложений). Однако все, что я получаю, - это пустое электронное письмо.
Идея состоит в том, чтобы сгенерировать изображение со всеми данными для каждой строки и отправить его на соответствующее электронное письмо.
Вот холст из прямоугольников Я хочу сделать, но безрезультатно.
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Image</title>
<script>
function init() {
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.fillRect(50,50,50,50);
var img = new Image();
img.src = canvas.toDataURL("image/png");
return img;
}
function draw(ctx) {
var alpha = ctx.globalAlpha;
// capa1/Rectngulo
ctx.save();
ctx.save();
ctx.shadowColor = "rgb(0, 0, 0)";
ctx.shadowOffsetX = 0.0;
ctx.shadowOffsetY = 7.0;
ctx.shadowBlur = 10.0;
ctx.globalAlpha = alpha * 0.30;
ctx.beginPath();
ctx.moveTo(294.4, 146.3);
ctx.lineTo(15.9, 146.3);
ctx.lineTo(15.9, 8.0);
ctx.lineTo(294.4, 8.0);
ctx.lineTo(294.4, 146.3);
ctx.closePath();
ctx.fillStyle = "rgb(213, 213, 213)";
ctx.fill();
ctx.lineWidth = 0.8;
ctx.stroke();
// capa1/Rectngulo
ctx.shadowColor = "rgb(0, 0, 0)";
ctx.shadowOffsetX = 0.0;
ctx.shadowOffsetY = 7.0;
ctx.shadowBlur = 10.0;
ctx.beginPath();
ctx.moveTo(294.4, 338.2);
ctx.lineTo(15.9, 338.2);
ctx.lineTo(15.9, 199.8);
ctx.lineTo(294.4, 199.8);
ctx.lineTo(294.4, 338.2);
ctx.closePath();
ctx.fill();
ctx.stroke();
// capa1/Rectngulo
ctx.shadowColor = "rgb(0, 0, 0)";
ctx.shadowOffsetX = 0.0;
ctx.shadowOffsetY = 7.0;
ctx.shadowBlur = 10.0;
ctx.beginPath();
ctx.moveTo(613.3, 241.4);
ctx.lineTo(334.8, 241.4);
ctx.lineTo(334.8, 103.1);
ctx.lineTo(613.3, 103.1);
ctx.lineTo(613.3, 241.4);
ctx.closePath();
ctx.fill();
ctx.stroke();
// capa1/Rectngulo
ctx.shadowColor = "rgb(0, 0, 0)";
ctx.shadowOffsetX = 0.0;
ctx.shadowOffsetY = 7.0;
ctx.shadowBlur = 10.0;
ctx.beginPath();
ctx.moveTo(932.8, 148.2);
ctx.lineTo(653.8, 148.2);
ctx.lineTo(653.8, 35.9);
ctx.lineTo(932.8, 35.9);
ctx.lineTo(932.8, 148.2);
ctx.closePath();
ctx.fill();
ctx.stroke();
// capa1/Rectngulo
ctx.shadowColor = "rgb(0, 0, 0)";
ctx.shadowOffsetX = 0.0;
ctx.shadowOffsetY = 7.0;
ctx.shadowBlur = 10.0;
ctx.beginPath();
ctx.moveTo(932.8, 308.2);
ctx.lineTo(653.8, 308.2);
ctx.lineTo(653.8, 195.9);
ctx.lineTo(932.8, 195.9);
ctx.lineTo(932.8, 308.2);
ctx.closePath();
ctx.fill();
ctx.stroke();
}
</script>
</head>
<body onload="init()">
<canvas id="canvas" width="1315" height="361"></canvas>
</body>
</html>
Код в хранимой процедуре SQL Server для части HTML выглядит следующим образом:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SQL ALERTING',
@body = @body,
@body_format ='HTML',
@recipients = @@email,
@subject = 'Test' ;
Может ли кто-нибудь помочь я говорю мне, что не так, или есть ли альтернатива? Заранее спасибо!