SQL सर्वर में एक डेटाबेस मेल विकल्प होता है जिसका उपयोग आप डेटाबेस सर्वर से मेल भेजने के लिए कर सकते हैं।
उदाहरण के लिए, जब SQL सर्वर एजेंट कार्य समाप्त हो जाता है या विफल हो जाता है, या जब कोई उच्च-गंभीर त्रुटि होती है, आदि आप सूचनाएं प्राप्त कर सकते हैं।
जब डेटाबेस मेल कॉन्फ़िगर नहीं है
SQL सर्वर में, sp_send_dbmail
. निष्पादित करके मेल भेजा जाता है msdb
. में संग्रहीत कार्यविधि डेटाबेस।
यहां एक उदाहरण दिया गया है:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Your favorite SQL Server Agent job just failed',
@subject = 'SQL Server Agent Job: FAILED';
हालांकि, यह मानता है कि SQL सर्वर मेल भेजने के लिए कॉन्फ़िगर किया गया है।
यदि आप SQL सर्वर से मेल भेजने का प्रयास करते हैं, लेकिन आपको निम्न की तरह एक त्रुटि मिलती है, तो इसका मतलब है कि आपके पास वर्तमान में डेटाबेस मेल सक्षम नहीं है।
Msg 15281, Level 16, State 1, Procedure msdb.dbo.sp_send_dbmail, Line 0 SQL Server blocked access to procedure 'dbo.sp_send_dbmail' of component 'Database Mail XPs' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Database Mail XPs' by using sp_configure. For more information about enabling 'Database Mail XPs', search for 'Database Mail XPs' in SQL Server Books Online.
डेटाबेस मेल XP सक्षम करें
इससे पहले कि आप सर्वर से मेल भेजना शुरू करें, आपको यह सुनिश्चित करना होगा कि आपके पास डेटाबेस मेल XP सक्षम हैं।
यह करना बहुत आसान है (हालाँकि, Microsoft अनुशंसा करता है कि इस तरह के उन्नत विकल्पों को केवल एक अनुभवी डेटाबेस व्यवस्थापक या प्रमाणित SQL सर्वर तकनीशियन द्वारा बदला जाना चाहिए)।
डेटाबेस मेल XP को सक्षम करने का तरीका यहां दिया गया है:
EXEC sp_configure 'show advanced options', '1';
RECONFIGURE
GO
EXEC sp_configure 'Database Mail XPs', 1;
RECONFIGURE
GO
परिणाम:
Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install. Commands completed successfully. Commands completed successfully.
मेल खाता, प्रोफ़ाइल, आदि बनाएं
डेटाबेस मेल सीधे उपयोगकर्ता खाते के बजाय प्रोफ़ाइल के माध्यम से भेजा जाता है।
डेटाबेस मेल के साथ ईमेल भेजने के लिए आपको एक डेटाबेस मेल खाता, एक डेटाबेस मेल प्रोफ़ाइल बनाना होगा, प्रोफ़ाइल में खाता जोड़ना होगा, और फिर उपयोगकर्ता को उस प्रोफ़ाइल तक पहुंच प्रदान करनी होगी। उपयोगकर्ता को msdb
. पर होना चाहिए डेटाबेस।
ऐसा करने के लिए T-SQL कोड कुछ इस तरह दिख सकता है:
-- Switch to the msdb database
USE msdb;
-- Create a user on the msdb database
CREATE USER Marge FOR LOGIN Marge;
-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'DB Admin',
@description = 'Mail account for admin emails.',
@email_address = '[email protected]',
@replyto_address = '[email protected]',
@display_name = 'DB Automated Mailer',
@mailserver_name = 'smtp.example.com',
@port = 25;
-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'DB Admin Profile',
@description = 'Profile for admin emails.';
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'DB Admin Profile',
@account_name = 'DB Admin',
@sequence_number = 1;
-- Grant the msdb user access to the Database Mail profile
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DB Admin Profile',
@principal_name = 'Marge',
@is_default = 1;
आपको विभिन्न विवरणों को अपने साथ बदलना होगा। यह भी मानता है कि आप एक मेल सर्वर निर्दिष्ट करते हैं जो काम करता है।
एक बार ऐसा करने के बाद, आपको msdb.dbo.sp_send_dbmail
के साथ मेल भेजने में सक्षम होना चाहिए संग्रहीत प्रक्रिया।