Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

पता करें कि SQL सर्वर (T-SQL) में ईमेल भेजने में विफल क्यों है

यदि आप 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 .

ये निम्न लॉग करते हैं:

  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 |
+--------------+--------------+------------------------------------------------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2019 (ज्ञात बग) में मूल रूप से संकलित संग्रहीत प्रक्रिया को निष्पादित करते समय "आंतरिक कनेक्शन घातक त्रुटि"

  2. कुल फ़ंक्शन के बिना एसक्यूएल सर्वर में पिवट क्वेरी कैसे बनाएं?

  3. sys.dm_os_host_info गतिशील प्रबंधन दृश्य के साथ SQL सर्वर में ऑपरेटिंग सिस्टम संस्करण जानकारी लौटाएं

  4. एक अप्रत्यक्ष ग्राफ के सभी जुड़े हुए सबग्राफ कैसे खोजें

  5. SQL सर्वर के लिए शीर्ष 5 डेटा मॉडलिंग उपकरण