Tak, to jest możliwe odczytanie zawartości pliku do zmiennej, a następnie przekazując go do sp_send_dbmail
. Oto w jaki sposób można to zrobić:
declare @htmlBody varchar(max)
SELECT @htmlBody=BulkColumn
FROM OPENROWSET(BULK N'c:\test\test.html',SINGLE_BLOB) x;
EXEC msdb.dbo.sp_send_dbmail
@profile_name = N'Email', -- you should use the profile name of yours, whatever is set up in your system.
@recipients = 'recipient_email_id',
@subject = 'Test',
@body = @htmlBody,
@body_format = 'html',
@from_address = 'sender_email_id';
To będzie osadzać zawartość c:\test\test.html
do ciała pocztowego. Oczywiście możesz dodać więcej do ciała.
UPDATE:
ta działa tylko wtedy, gdy plik czytasz zawiera HTML zawartość. Jeśli chcesz sprawić, by działało na mhtml
, musisz przekonwertować plik mhtml
na html
(Zobacz odpowiedź wysłaną przez @Pops, aby uzyskać szczegółowe informacje na temat konwertowania mhtml
na html
).
Dzięki za odpowiedź. Kiedy spróbuję tego co zasugerowałeś, osadza on tekst pliku .mhtml (jak to, co zobaczyłbym, gdybym go otworzył w notatniku). Nie przedstawia raportu tak, jak by wyglądał, gdybym otworzył plik w IE. – Pops
Czy możesz umieścić minimalny przykład pliku '.mhtml' (Twój raport)? Czy ustawiłeś '@body_format = 'html''? – ahoxha
Widzę, gdzie jest problem. Działa tylko wtedy, gdy plik jest HTML, ale nie MHTML. – ahoxha