यदि आप SQL सर्वर से मेल भेजने का प्रयास करते हैं, लेकिन आपको "प्रोफ़ाइल नाम मान्य नहीं है" मिलता है, तो यह शायद इसलिए है क्योंकि आपने @profile_name
के लिए कोई मान्य प्रोफ़ाइल निर्दिष्ट नहीं की है तर्क।
उदाहरण
उदाहरण के लिए, मान लें कि जब भी SQL सर्वर एजेंट कार्य विफल हो जाता है, तो आप व्यवस्थापक को एक सूचना ईमेल भेजने के लिए निम्न T-SQL कोड का उपयोग कर रहे हैं:
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';
लेकिन आपको निम्न त्रुटि मिलती है:
Msg 14607, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_profile_sp, Line 42 profile name is not valid
यह त्रुटि विशेष रूप से हमें बताती है कि "प्रोफ़ाइल नाम मान्य नहीं है"।
डेटाबेस मेल के साथ ईमेल भेजने के लिए आपको सीधे उपयोगकर्ता खाते के बजाय एक प्रोफ़ाइल निर्दिष्ट करने की आवश्यकता है। इस मामले में, मैंने एक @profile_name
. निर्दिष्ट किया है DB Admin Profile
. का , लेकिन ऐसी प्रोफ़ाइल वास्तव में मौजूद नहीं है।
इससे पहले कि मैं मेल भेज सकूं, मुझे एक उपयोगकर्ता को msdb
. में जोड़ना होगा डेटाबेस, एक डेटाबेस मेल खाता बनाएँ, फिर एक प्रोफ़ाइल बनाएँ और उस प्रोफ़ाइल में डेटाबेस मेल खाता जोड़ें। फिर मुझे उपयोगकर्ता को प्रोफ़ाइल में जोड़ने की आवश्यकता है।
कुल मिलाकर, यह कुछ इस तरह दिखाई देगा:
-- 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 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;
जाहिर है, आपको विभिन्न विवरणों को अपने साथ बदलना होगा। यह भी मानता है कि आप एक मेल सर्वर निर्दिष्ट करते हैं जो काम करता है।
एक बार हो जाने के बाद, आपको मेल भेजने के लिए तैयार रहना चाहिए।