2015-11-30 3 views
0

Я хочу, чтобы отправить электронную почту с помощью хранимых процедурSQL-сервер: Отправить письмо от хранимой процедуры

WITH EXECUTE AS OWNER 
AS 
BEGIN 
    SET NOCOUNT ON; 

    DECLARE @tableCSS NVARCHAR(MAX); 
    DECLARE @tableHTML NVARCHAR(MAX); 

    SET @tableHTML = 
     N'<H3>RewardProgram</H3>' + 
     N'<table id="box-table">' + 
     N'<tr> 
      <th>ID</th> 
      <th>Name</th> 
      <th>Email</th> 
     </tr>' + 
     CAST((SELECT td = WebForm.id, '', 
        td = WebForm.Name, '', 
        td = WebForm.Email, '' 
       FROM RewardProgram.dbo.WebForm  
       FOR XML PATH('tr'), TYPE) AS NVARCHAR(MAX)) +  
     N'</table>' + 
     N'<br/>' 

    EXEC msdb.dbo.sp_send_dbmail  
     @profile_name = 'Database Mail Profile', 
     @recipients = '[email protected]', 
     @subject = 'RewardProgram', 
     @body = @tableHTML, 
     @body_format = 'HTML'  
END 

Когда я выполняю, в Command (ы) успешно завершена, но письма не получили

Как я продолжаю это делать?

Заранее благодарен!

Edit: почта База данных была создана и испытана, прежде чем я перейду код в хранимые процедуры

+0

Включена ли почта Mail? Прочитали ли вы всю эту страницу (включая замечания, разрешения, примеры): https://msdn.microsoft.com/en-us/library/ms190307.aspx –

+0

Когда вы редактируете профиль электронной почты в SSMS, я думаю, Test '. Вы попробовали? –

+0

Проверьте наличие ошибок в журналах. проверьте этот учебник: http://ms-sql-queries.blogspot.in/2012/12/how-to-send-email-from-sql-server.html – malyy

ответ

0

мне удается отправить электронную почту после создания LOGIN и USER для моей базы данных со следующим:

CREATE LOGIN [SystemMail] 
    WITH PASSWORD = 'Password'; 
GO 

CREATE USER [SystemMail] FOR LOGIN [SystemMail]; 
GO 

USE RewardProgram 
GO 

CREATE USER [SystemMail] FROM LOGIN [SystemMail]; 
EXEC sp_addrolemember 'db_owner', 'SystemMail'; 
GO 
Смежные вопросы