1. Home
  2. Hospedagem de Sites
  3. Database mail do SQL Server
  1. Home
  2. Hospedagem VPS
  3. Database mail do SQL Server
  1. Home
  2. Cloud Hosting
  3. Database mail do SQL Server

Database mail do SQL Server

Personalizamos o envio de e-mail no SQL Server 2008 usando um assembly .NET com métodos de envio de e-mail simples e completo. Para cada método criamos uma Stored Procedure.

Stored Procedure para envio de e-mail simples: [master].[dbo].[LocaWebMailMessage]
Stored Procedure para envio de e-mail completo: [master].[dbo].[LocaWebMailMessage2]

Sintaxe

[master].[dbo].[LocaWebMailMessage2]

Stored Procedure para envio de e-mail completo, onde informamos:

De (nome),
De (endereço),
Para (nome),
Para (endereço),
Cópia Para (nome),
Cópia Para (endereço),
Cópia Oculta Para (nome),
Cópia Oculta Para (endereço),
Resposta Para (nome),
Resposta Para (endereço),
Assunto,
Corpo do E-mail,

Se é HTML ou Texto, Prioridade e Notificação de Entrega.

[master].[dbo].[LocaWebMailMessage2]

     [@fromName = 'fromName']
     , @fromAddress = 'fromAddress'
     [ ,@toName = 'toName']
     , @toAddress = 'toAddress'
     [ ,@ccName = 'toName']
     [, @ccAddress = 'toAddress']
     [ ,@bccName = 'toName']
     [, @bccAddress = 'toAddress']
     [ ,@replyToName = 'toName']
     [, @replyToAddress = 'toAddress']
     , @subject = 'subject'
     , @body = 'body'
     [ ,@isBodyHtml = bit]
     [ ,@priority = int]
     [ ,@deliveryNotificationOptions = int]

Argumentos

     @fromName = Nome do Remetente (opcional)
     @fromAddress = Endereço do e-mail do remetente
     @toName = Nome do Destinatário (opcional)
     @toAddress = Endereço de e-mail do destinatário
     @ccName = Nome do destinatário da cópia (opcional)
     @ccAddress = Endereço de e-mail do destinatário da cópia (opcional)
     @bccName = Nome do destinatário da cópia oculta (opcional)
     @bccAddress = Endereço de e-mail do destinatário da cópia oculta (opcional)
     @replyToName = Nome do e-mail que receberá a resposta. (opcional)
     @replyToAddress = Endereço de e-mail que receberá a resposta. (opcional)
     @subject = Assunto do e-mail
     @body = Corpo do e-mail
     @isBodyHtml = Se o e-mail está em HTML ou texto. Pode ser 0 ou 1 e o padrão é texto (0)
     @priority = Prioridade da mensagem. Pode ser:
              0 - O e-mail tem prioridade normal;
              1 O e-mail tem prioridade baixa;
              2 O e-mail tem prioridade alta.
     @deliveryNotificationOptions = Opções de notificações de entrega.Pode ser:
              0 Sem notificação;
              1 Notifica se a entrega ocorre com sucesso;
              2 Notifica se ocorreu falha na entrega;
              4 Notifica se a entrega ocorre com demora;
              134217728 Nunca notifica. (pode ser a soma de opções)

Exemplos

Envio de mensagem completa

EXECUTE [master].[dbo].[LocaWebMailMessage2] 
     @fromName = 'Locaweb'
     , @fromAddress = 'info@locaweb.com.br'
     , @toName = 'Locaweb'
     , @toAddress = 'locaweb@www10.locaweb.com.br'
     , @ccName = 'Teste'
     , @ccAddress = 'diagnosticando@gmail.com'
     , @bccName = 'Teste2'
     , @bccAddress = 'diagnosticando@homail.com'
     , @replyToName = 'Locaweb'
     , @replyToAddress = 'locaweb@www10.locaweb.com.brr'
     , @subject = 'Mensagem de teste'
     , @body = 'Esta também foi enviada pelo SQL Server 2008!'
     , @isBodyHtml = 1
     , @priority = 2
     , @deliveryNotificationOptions = 1 

Recuperando Exception com TRY/CATCH

BEGIN TRY
     EXECUTE [master].[dbo].[LocaWebMailMessage2]
          @fromName = 'Locaweb'
          , @fromAddress = 'info@locaweb.com.br'
          , @toName = 'Locaweb'
          , @toAddress = 'locaweb@www10.locaweb.com.br'
          , @subject = 'Teste de Exception'
          , @body = 'Vai gerar erro porque o remetente está com 3 @s.'
END TRY
BEGIN CATCH
     SELECT
          ERROR_NUMBER() AS ErrorNumber,
          ERROR_SEVERITY() AS ErrorSeverity,
          ERROR_STATE() AS ErrorState,
          ERROR_PROCEDURE() AS ErrorProcedure,
          ERROR_LINE() AS ErrorLine,
          ERROR_MESSAGE() AS ErrorMessage;
END CATCH

Aproveite e conheça outros produtos da Locaweb, como o Hospedagem de Sites, clique aqui e saiba mais!

Este artigo foi útil ?

Artigos relacionados