特定のイベント ログ メッセージを電子メールで送信するために、毎日スケジュールされたジョブとして使用する SQL の小さなルーチンがあります。
DECLARE @CurrentDate DATETIME,
@Body VARCHAR(MAX),
@TableHead VARCHAR(MAX),
@TableTail VARCHAR(MAX)
SET NOCOUNT ON;
SELECT @CurrentDate=DATEADD(dw, -5, GETDATE()) --Three weekdays back
SET @TableTail='</table></body></html>'
SET @TableHead = '<html><head>' +
'<style>' +
'td {border: solid black 1px;padding-left:5px;padding-right:5px;padding-top:1px;padding-bottom:1px;font-size:9pt;} ' +
'</style>' +
'</head>' +
'<body><table cellpadding=0 cellspacing=0 border=0>' +
'<tr bgcolor=#FFEFD8><td align=center><b>User Name</b></td>' +
'<td align=center><b>Date</b></td>' +
'<td align=center><b>Message</b></td></tr>';
SELECT @Body=(
SELECT ELogUserName AS [TD],
CONVERT(NVARCHAR(20),Elogdatetime,101) AS [TD],
REPLACE(Elogmessage,CHAR(10)+CHAR(13),'<br />') AS [TD]
FROM tblEventLog
WHERE ELogDateTime > @CurrentDate AND ELogEventType = 3 AND ELogUsername <> 'jameccccccfer'
ORDER BY ELogID DESC
FOR XML RAW('tr'), Elements)
SELECT @Body = @TableHead + @Body + @TableTail
-- return output
INSERT INTO tblPendingMessages
SELECT
'xxxxxxx@Gmail.com' AS Recipient,
'CPAS Error Log' AS MessageSubject,
NULL AS MessageCC,
@Body AS MessageBody,
@CurrentDate AS MessageGenerated,
NULL AS MessageSent,
NULL AS MessageUser,
'HTML' AS MessageFormat
このコードは、次のような HTML 文字列を生成します。
<html><head><style>td {border: solid black 1px;padding-left:5px;padding-right:5px;padding-top:1px;padding-bottom:1px;font-size:9pt;} </style></head><body><table cellpadding=0 cellspacing=0 border=0><tr bgcolor=#FFEFD8><td align=center><b>User Name</b></td><td align=center><b>Date</b></td><td align=center><b>Message</b></td></tr><tr><TD>nfox</TD><TD>06/29/2012</TD><TD>Error Nbr 3075 - Syntax error (missing operator) in query expression *ProjectID=*.
 --> CPASProd.Form_frmWorkOrders.cbProjectID_AfterUpdate, #1, 
 </TD></tr><tr><TD>nfox</TD><TD>06/29/2012</TD><TD>Total number of errors: 1
 1. Cannot append. An object with that name already exists in the collection. (#3367)
 </TD></tr><tr><TD>nfox</TD><TD>06/29/2012</TD><TD>Total number of errors: 1
 1. Cannot append. An object with that name already exists in the collection. (#3367)
 </TD></tr><tr><TD>nfox</TD><TD>06/29/2012</TD><TD>Total number of errors: 1
 1. Cannot append. An object with that name already exists in the collection. (#3367)
 </TD></tr></table></body></html>
残念ながら、改行の代わりに Outlook (またはさらに悪いことに、gmail Web クライアント) でレンダリングすると、代わりに HTML コードが表示されます。
("<br />")
私が間違っていることは何か分かりますか?