Sending Mail In SQL Server

Step 1: Configure Email Setting:

  1. sp_configure 'show advanced options', 1;  
  2. GO  
  3. RECONFIGURE;  
  4. GO  
  5. sp_configure 'Ole Automation Procedures', 1;  
  6. GO  
  7. RECONFIGURE;  
  8. GO   
Step 2: Create Store Procedure To Send Email:
  1. CREATE PROCEDURE [dbo].[sp_send_mail]  
  2.         @from varchar(500) ,  
  3.         @to varchar(500) ,  
  4.         @subject varchar(500),  
  5.         @body varchar(4000) ,  
  6.         @bodytype varchar(10),  
  7.         @output_mesg varchar(10) output,  
  8.         @output_desc varchar(1000) output  
  9. AS  
  10. DECLARE @imsg int  
  11. DECLARE @hr int  
  12. DECLARE @source varchar(255)  
  13. DECLARE @description varchar(500)  
  14.   
  15. EXEC @hr = sp_oacreate 'cdo.message', @imsg out  
  16.   
  17. EXEC @hr = sp_oasetproperty @imsg,  
  18. 'configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").value','2'  
  19.   
  20. --SMTP Server  
  21. EXEC @hr = sp_oasetproperty @imsg,   
  22.   'configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").value',   
  23.   'smtp.gmail.com'   
  24.   
  25. --UserName  
  26. EXEC @hr = sp_oasetproperty @imsg,   
  27.   'configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusername").value',   
  28.   '[email protected]'   
  29.   
  30. --Password  
  31. EXEC @hr = sp_oasetproperty @imsg,   
  32.   'configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendpassword").value',   
  33.   'xxxxxx'   
  34.   
  35. --UseSSL  
  36. EXEC @hr = sp_oasetproperty @imsg,   
  37.   'configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl").value',   
  38.   'True'   
  39.   
  40. --PORT   
  41. EXEC @hr = sp_oasetproperty @imsg,   
  42.   'configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").value',   
  43.   '465'   
  44.   
  45. --Requires Aunthentication None(0) / Basic(1)  
  46. EXEC @hr = sp_oasetproperty @imsg,   
  47.   'configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").value',   
  48.   '1'   
  49.   
  50. EXEC @hr = sp_oamethod @imsg, 'configuration.fields.update'null  
  51. EXEC @hr = sp_oasetproperty @imsg, 'to', @to  
  52. EXEC @hr = sp_oasetproperty @imsg, 'from', @from  
  53. EXEC @hr = sp_oasetproperty @imsg, 'subject', @subject  
  54.   
  55. -- if you are using html e-mail, use 'htmlbody' instead of 'textbody'.  
  56.   
  57. EXEC @hr = sp_oasetproperty @imsg, @bodytype, @body  
  58. EXEC @hr = sp_oamethod @imsg, 'send'null  
  59.   
  60. SET @output_mesg = 'Success'  
  61.   
  62. -- sample error handling.  
  63. IF @hr <>0   
  64.     SELECT @hr  
  65.     BEGIN  
  66.         EXEC @hr = sp_oageterrorinfo null, @source out, @description out  
  67.         IF @hr = 0  
  68.         BEGIN  
  69.             --set @output_desc = ' source: ' + @source  
  70.             set @output_desc =  @description  
  71.         END  
  72.     ELSE  
  73.     BEGIN  
  74.         SET @output_desc = ' sp_oageterrorinfo failed'  
  75.     END  
  76.     IF not @output_desc is NULL  
  77.             SET @output_mesg = 'Error'  
  78. END  
  79. EXEC @hr = sp_oadestroy @imsg  
Step 3: Execute SP,
  1. DECLARE @out_desc varchar(1000),  
  2.         @out_mesg varchar(10)  
  3.   
  4. EXEC sp_send_mail '[email protected]',  
  5.     '[email protected]',  
  6.     'Hii',   
  7.     '<b>Sending Test Mail</b>',  
  8.     'htmlbody', @output_mesg = @out_mesg output, @output_desc = @out_desc output  
  9.   
  10. PRINT @out_mesg  
  11. PRINT @out_desc