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

SQL सर्वर से मेल भेजते समय "प्रोफ़ाइल नाम मान्य नहीं है" ठीक करें

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

जाहिर है, आपको विभिन्न विवरणों को अपने साथ बदलना होगा। यह भी मानता है कि आप एक मेल सर्वर निर्दिष्ट करते हैं जो काम करता है।

एक बार हो जाने के बाद, आपको मेल भेजने के लिए तैयार रहना चाहिए।


  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 सर्वर में लिंक किए गए सर्वर से तालिका विशेषाधिकार लौटाएं (T-SQL उदाहरण)

  2. SQL सर्वर जॉब्स को एक SQL सर्वर इंस्टेंस से दूसरे में कैसे माइग्रेट करें

  3. SQL सर्वर प्रबंधन स्टूडियो (SSMS) में .csv या Tab सीमांकित फ़ाइल में क्वेरी परिणाम कैसे निर्यात करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 23

  4. SQL सर्वर में एक विदेशी कुंजी बाधा कैसे सक्षम करें (T-SQL उदाहरण)

  5. दूरस्थ SQL सर्वर पर BCP का उपयोग करके कैसे लिखें?