Váš přístup je v pořádku, ale váš wrapper proc musí být v databázi msdb. Potom spusťte "EXEC msdb.dbo._TestSendMail"
To stále ponechává problém oprávnění na dbo._TestSendMail v msdb. Ale public/EXECUTE bude stačit:odhalí pouze 3 parametry, které potřebujete.
Pokud máte pochybnosti, přidejte ŠIFROVÁNÍ. To je dost dobré na to, aby zabránil komukoli bez práv správce systému prohlížet kód
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