आपका दृष्टिकोण ठीक है, लेकिन आपकी रैपर खरीद msdb डेटाबेस में होनी चाहिए। फिर, आप "EXEC msdb.dbo._TestSendMail" को निष्पादित करते हैं।
यह अभी भी एमएसडीबी में dbo._TestSendMail पर अनुमतियों के मुद्दे को छोड़ देता है। लेकिन सार्वजनिक/निष्पादन पर्याप्त होगा:यह केवल आपके लिए आवश्यक 3 पैरामीटर को उजागर करता है।
यदि संदेह है, तो एन्क्रिप्शन के साथ जोड़ें। यह कोड देखने के sysadmin अधिकारों के बिना किसी को भी रोकने के लिए पर्याप्त है
USE msdb
GO
CREATE PROCEDURE [dbo].[_TestSendMail]
(
@To NVARCHAR(1000),
@Subject NVARCHAR(100),
@Body NVARCHAR(MAX)
)
-- not needec WITH EXECUTE AS OWNER
AS
BEGIN
EXEC dbo.sp_send_dbmail @profile_name = N'myProfile',
@recipients = @To, @subject = @Subject, @body = @Body
END