यदि आप SQL सर्वर में डेटाबेस मेल का उपयोग करके ईमेल भेजने का प्रयास कर रहे हैं, लेकिन यह भेजने में विफल रहता है, तो आप sysmail_event_log
देख सकते हैं यह देखने के लिए देखें कि यह विफल क्यों हुआ।
sysmail_event_log
डेटाबेस मेल सिस्टम द्वारा लौटाए गए प्रत्येक विंडोज या SQL सर्वर संदेश के लिए दृश्य एक पंक्ति देता है। "संदेश" से, मेरा मतलब वास्तविक मेल संदेश से नहीं है। मेरा मतलब एक संदेश है जैसे त्रुटि संदेश जो बताता है कि मेल क्यों विफल हुआ।
आप sysmail_configure_sp
. का भी उपयोग कर सकते हैं किस प्रकार के संदेशों को लॉग किया जाता है, यह निर्धारित करने के लिए संग्रहीत प्रक्रिया।
उदाहरण
sysmail_event_log
. का उपयोग करने का तरीका दिखाने के लिए यहां एक उदाहरण दिया गया है सभी संदेशों को वापस करने के लिए।
SELECT * FROM msdb.dbo.sysmail_event_log;
मेरे सिस्टम पर यह यहां दिखाने के लिए बहुत अधिक डेटा देता है, लेकिन यहां फिर से एक संदेश दिखाना है जो वापस आ गया है।
SELECT *
FROM msdb.dbo.sysmail_event_log
WHERE log_id = 2;
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
log_id | 2 event_type | error log_date | 2020-08-24 02:40:53.317 description | The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2020-08-24T02:40:52). Exception Message: Could not connect to mail server. (No connection could be made because the target machine actively refused it 127.0.0.1:25).) process_id | 68 mailitem_id | 1 account_id | NULL last_mod_date | 2020-08-24 02:40:53.317 last_mod_user | sa
मैंने इस उदाहरण में वर्टिकल आउटपुट का उपयोग किया है ताकि आपको बग़ल में स्क्रॉल न करना पड़े।
अपना लॉगिंग स्तर जांचें
आप sysmail_help_configure_sp
. का उपयोग कर सकते हैं किस प्रकार के संदेशों को लॉग किया जाता है, यह जांचने के लिए संग्रहीत प्रक्रिया।
उदाहरण:
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = LoggingLevel;
परिणाम:
+--------------+--------------+------------------------------------------------------------------------------+ | paramname | paramvalue | description | |--------------+--------------+------------------------------------------------------------------------------| | LoggingLevel | 2 | Database Mail logging level: normal - 1, extended - 2 (default), verbose - 3 | +--------------+--------------+------------------------------------------------------------------------------+
मेरे मामले में, LoggingLevel
है 2
, जो कि डिफ़ॉल्ट मान है। यह सेटिंग त्रुटियों, चेतावनियों और सूचनात्मक संदेशों को लॉग करती है।
अपना लॉगिंग स्तर बदलें
आप sysmail_configure_sp
. का उपयोग कर सकते हैं आपके लॉगिंग स्तर को बदलने के लिए संग्रहीत प्रक्रिया।
विशेष रूप से, आप एक LoggingLevel
. चुन सकते हैं का 1
, 2
, या 3
.
ये निम्न लॉग करते हैं:
- केवल त्रुटियाँ।
- त्रुटियां, चेतावनियां, और सूचनात्मक संदेश (डिफ़ॉल्ट)।
- त्रुटियां, चेतावनियां, सूचनात्मक संदेश, सफलता संदेश और अतिरिक्त आंतरिक संदेश।
यदि आप किसी समस्या का निवारण कर रहे हैं, तो हो सकता है कि आप अस्थायी रूप से अपने लॉगिंग स्तर को 3 में बदलना चाहें।
यहां लॉगिंग स्तर को 3
. में बदलने का एक उदाहरण दिया गया है ।
EXECUTE msdb.dbo.sysmail_configure_sp
'LoggingLevel', '3';
इसे चलाने के बाद, मैं अपना LoggingLevel
. देख सकता हूं फिर से sysmail_help_configure_sp
. के साथ संग्रहीत प्रक्रिया।
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = LoggingLevel;
परिणाम:
+--------------+--------------+------------------------------------------------------------------------------+ | paramname | paramvalue | description | |--------------+--------------+------------------------------------------------------------------------------| | LoggingLevel | 3 | Database Mail logging level: normal - 1, extended - 2 (default), verbose - 3 | +--------------+--------------+------------------------------------------------------------------------------+