0

私は、おそらくスマートフォン (電子メールまたは SMS) にルーティングされ、生産上の問題が発生したときに人々を目​​覚めさせるために使用される電子メール アラートを作成しています。電子メールは、EXEC msdb.dbo.sp_send_dbmail で送信され、ストアド プロシージャを実行する @query パラメータを提供します。

現在、レポートは次のようになっています。ご覧のように、Courier フォントではないものが丸まって表示されると、見栄えが悪くなります。

これをフォーマットする最良の方法は何ですか? 代わりにテーブル付きの HTML メール? それを行うための T-SQL ユーティリティはありますか? これはおそらく、T-SQL ではなく C# の仕事でしょうか (どちらでもコーディングできます)。

> 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

次の3つの案を考えています。

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 では機能しません。これを SMS に転送する人もいます。

4

1 に答える 1

1

書式設定は、ストアド プロシージャや SQL で知られているものではありません。XML 出力と、場合によっては XSLT を検討する価値があるかもしれません。

現在の出力で「pre」タグを使用して、間隔と改行を保持します。

SMS メッセージの配信に 24 時間かかるのを見てきました。頻繁に起こるわけではありませんが、定期的に起こります。(おそらく年に 1 回ですが、私はほとんどの人ほどテキスト メッセージを送信しません。)

  • 重要な情報のみを送信し、
  • 160文字未満にしてください。

電話では、あなたの#1のようなものを読みたいと思いますが、それは重要な情報の量に依存する可能性があると思います. 幅の広いテーブル (あなたのテーブルは幅が広いと思います) は、電話で読むのが難しいです。

SMS に特定の電子メールを転送する人々に依存することが理にかなっているのかどうかは、実際にはアプリケーションに依存します。それが信頼できるかどうかを判断できるのは、ここにいるあなただけです。

于 2012-08-22T15:48:52.300 に答える