Found workaround that allow to switch between UTF/ANSI.
In order to do that you need to modify sp_send_dbmail
like that:
- Add new parameter to procedure somemthing like
@ANSI_Attachment BIT = 0
- Replace piece of its code
IF(@AttachmentsExist = 1) BEGIN ....... END
with
`IF (@AttachmentsExist = 1)
BEGIN
if (@ANSI_Attachment = 1)
begin
--Copy temp attachments to sysmail_attachments
INSERT INTO sysmail_attachments(mailitem_id, filename, filesize, attachment)
SELECT @mailitem_id, filename, filesize,
convert(varbinary(max),
substring( -- remove BOM mark from unicode
convert(varchar(max), CONVERT (nvarchar(max), attachment)),
2, DATALENGTH(attachment)/2
)
)
FROM sysmail_attachments_transfer
WHERE uid = @temp_table_uid
end else begin
--Copy temp attachments to sysmail_attachments
INSERT INTO sysmail_attachments(mailitem_id, filename, filesize, attachment)
SELECT @mailitem_id, filename, filesize, attachment
FROM sysmail_attachments_transfer
WHERE uid = @temp_table_uid
end
END `
This does the same but if in procedure call @ANSI_Attachment = 1 is used it removes unicode BOM mark before sending.
Peeked that solution here