我正在尋找一種方法來檢查使用sp_send_dbmail
排隊的特定電子郵件是否最終從我們的Exchange服務器成功發送。我看過系統表msdb.dbo.sysmail_mailitems
和msdb.dbo.sysmail_log
。 msdb.dbo.sysmail_log
似乎是兩個更有幫助的;具體而言,其description
列。從我目前所進行的試驗,似乎只要出現錯誤,在下面的格式的消息出現在description
列:檢查sp_send_dbmail是否成功
郵件無法發送,因爲郵件服務器 的接收者失敗。 (2012-11-01T11:28:04發送郵件) 異常消息:無法向郵件服務器發送郵件(郵箱 不可用,服務器響應爲:5.7.1無法中繼 thisemail @ email )
這是與共享相同process_id
的其他行一起附上。對於封閉記錄的描述是
DatabaseMail過程開始
和
DatabaseMail進程正在關閉
如果一封電子郵件發送成功,表格中記錄了相同的2行,但在它們之間沒有封閉的行。
所以,如果我有一個成功的發送,下面出現在表
,如果我有一個發送失敗,日誌記錄本
是否有如果發送失敗或發送成功,可以記錄條目的其他實例?例如,是否有可能有4行的發送條目(包含2個說明它何時開始和何時關閉,以及2封說明電子郵件已成功發送)。我沒有發現與上面列出的模式不同的日誌記錄,但希望在我根據此假設編寫邏輯之前確定它們。
正是我所期待的。謝謝 –