首页 > 解决方案 > 短信中的 sp_send_dbmail 和换行符

问题描述

我正在尝试向自己发送一条短信,但无法在消息中实现换行符。我可以在使用 HTML 的电子邮件中毫无问题地执行此操作,但它对于 SMS 消息的工作方式不同。

 DECLARE @TXT_LIST VARCHAR(255);
 DECLARE @TXT_BODY NVARCHAR(MAX);

 SET @TXT_LIST = 'myphonenumber@msg.fi.google.com';

SET @TXT_BODY = 'This should be line 1.';

 -- SET @TXT_BODY += '\n';
 -- SET @TXT_BODY += '\r\n';
 -- SET @TXT_BODY += '<br />';
 -- SET @TXT_BODY += '%0a';

 SET @TXT_BODY += 'This should be line 2.';

 EXEC msdb.dbo.sp_send_dbmail @profile_name='myProfile', @recipients=@TXT_LIST, @body_format='HTML', @subject='Test Subject', @body=@TXT_BODY;

我已经尝试了您在上面看到的所有方法,这些方法都被注释掉了,它们都在我的手机上显示为纯文本,并且显示为一行而不是两行。

最终目标是运行一个返回 X 行的查询,并将结果集中的每一行放在文本消息的新行上。

标签: sql-serversp-send-dbmail

解决方案


我偶然发现了解决方案:

DECLARE @TXT_LIST NVARCHAR(255);
DECLARE @TXT_BODY NVARCHAR(MAX);
DECLARE @CRLF CHAR(2) = CHAR(13)+CHAR(10);

SET @TXT_LIST = 'myphonemumber@msg.fi.google.com';

SET @TXT_BODY = 'This should be line 1.';

SET @TXT_BODY += @CRLF;

SET @TXT_BODY += 'This should be line 2.';

EXEC msdb.dbo.sp_send_dbmail @profile_name='myProfile', @recipients=@TXT_LIST, @body_format='HTML', @subject='Test Subject', @body=@TXT_BODY;

推荐阅读