Database mail do SQL Server

De Wiki Locaweb
Ir para: navegação, pesquisa


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]


Índice

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

Veja também

Links

Ferramentas pessoais
Espaços nominais

Variantes
Ações
Navegação
Ferramentas
Criar um livro