0

我正在创建一个电子邮件警报,它很可能会被发送到智能手机(电子邮件或短信),并在我们遇到生产问题时用来唤醒人们。使用 EXEC msdb.dbo.sp_send_dbmail 发送电子邮件并提供执行存储过程的 @query 参数。

目前,报告看起来像这样,正如你所看到的,当事情环绕并且不是 Courier 字体时,它们看起来很糟糕。

格式化它的最佳方法是什么?用表格代替 HTML 电子邮件?是否有任何 T-SQL 实用程序可以做到这一点?这可能是 C# 而不是 T-SQL 的工作吗(我也可以编写代码)。

> Rating     Airline    Feed             LocalDateTimeLastMsgRcvd
> AlertMinutes CountMessageInLastHour AvgCountPerSameHour
> ---------- ---------- ---------------- ------------------------ ------------ ---------------------- ------------------- GOOD       ABC        Feed1             2012-08-22 07:15                   10               
> 420                 351 BAD        ABC        ABC-Feed2        
> 2012-08-22 07:04                   10                     48          
> 56 GOOD       ABC        ABC-Feed3         2012-08-22 06:40           
> 75                      1                   1 GOOD       DEF       
> DEF               2012-08-22 07:15                   10               
> 597                 858

我正在考虑三个想法:

1)使用T-SQL将每个元素写入临时表的不同行:

Row=1
Rating=Good
Feed=ABC 
LocalDateTimeLastMsgRcvd=2012-08-22 07:04 
etc..

.

2) 与上述类似,但使用 XML 包装器

3) 与上面类似,但使用<TR><TD>包装器来制作 HTML 表格。

我目前在这里查看选项 c:http: //msdn.microsoft.com/en-us/library/ms190307.aspx,它可能适用于大多数智能手机电子邮件,但可能不适用于 SMS。有些人会将其转发到他们的短信。

4

1 回答 1

1

格式化不是众所周知的存储过程或 SQL。可能值得考虑 XML 输出,可能还有 XSLT。

在当前输出中使用“pre”标签来保留间距和换行符。

我见过 SMS 消息需要 24 小时才能送达。它不经常发生在我身上,但它确实经常发生。(也许一年一次,而且我不像大多数人那样发短信。)

  • 仅发送关键信息,并且
  • 使其少于 160 个字符。

在电话上,我想我宁愿读你的 #1 之类的东西,但我想这可能取决于有多少信息是关键的。宽大的桌子——你的桌子让我觉得很宽——我很难在电话上阅读。

依赖人们将某些电子邮件转发到他们的 SMS 是否有意义实际上取决于应用程序。你是这里唯一能判断这是否可靠的人。

于 2012-08-22T15:48:52.300 回答