2015-11-30 145 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 

發送電子郵件當我執行的命令已成功完成但沒有郵件接收

如何我會去做嗎?

在此先感謝!

編輯:數據庫郵件已建立和測試之前,我的代碼轉移到存儲過程

+0

是否啓用數據庫郵件?您是否閱讀過所有此頁面(包括備註,權限和示例):https://msdn.microsoft.com/en-us/library/ms190307.aspx –

+0

當您在SSMS中編輯電子郵件配置文件時,我認爲有一個'測試「按鈕。你試過了嗎? –

+0

檢查日誌是否存在錯誤。查看本教程: http://ms-sql-queries.blogspot.in/2012/12/how-to-send-email-from-sql-server.html – malyy

回答

0

我管理與創建LOGINUSER我的數據庫後發送電子郵件的以下內容:

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