如何解决SQL Server sp_send_dbmail阻止正文中的html编码
如何防止使用sql Server的sp_send_dbmail
发送的电子邮件正文中的编码?
示例:
EXEC msdb.dbo.sp_send_dbmail
@recipients='my.email@somedomain.com',@subject = 'sql email test',@body = 'this+that',@body_format = 'HTML'
我收到的电子邮件的html来源如下:
this`+`that
身体看起来很好
this+that
但是,如果我想让源仍然有+而不是+
呢?
关于为什么需要执行此操作的悠久故事,但是解决此问题将极大地帮助我。有没有办法“逃脱”我的body参数中的+?还是关于如何防止这种编码的其他想法?
解决方法
您可以尝试做一个简单的XML hack:
DECLARE @source VARCHAR(255) = 'this`+`that';
DECLARE @body VARCHAR(255)= CAST ( CAST ( 'this`+`that' AS XML ) AS VARCHAR(255) );
SELECT @body AS body;
返回
+-------------+
| body |
+-------------+
| this`+`that |
+-------------+
但是,这不会消除您的反引号。您可以根据需要向REPLACE
添加呼叫:
DECLARE @body VARCHAR(255)= REPLACE ( CAST ( CAST ( 'this`+`that' AS XML ) AS VARCHAR(255) ),'`','' );
这将导致:
+-----------+
| body |
+-----------+
| this+that |
+-----------+
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。