Guia de configuração de Database Mail no ambiente SQL Compartilhado SkyNova
1- CRIAR O PERFIL
EXEC msdb.dbo.usp_TenantDatabaseMail_SaveProfile
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@Description=N'DBMAIL_ACCOUNT - perfil de teste',
@NewProfileName=NULL;
GO2. CRIAR A CONTA — OPÇÃO A: ANONYMOUS (Sem autenticação)
EXEC msdb.dbo.usp_TenantDatabaseMail_SaveAccount
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@AccountName=N'DBMAIL_ACCOUNT',
@EmailAddress=N'<EMAIL_REMETENTE>',
@DisplayName=N'LAB SQL Tenant',
@ReplyToAddress=N'<EMAIL_TESTE>',
@Description=N'DBMAIL_ACCOUNT - relay anônimo',
@MailServerName=N'<SMTP_HOST>',
@Port=<SMTP_PORT>,
@EnableSsl=0,
@AuthenticationMode=N'ANONYMOUS',
@UserName=NULL,
@Password=NULL,
@SequenceNumber=1,
@NewAccountName=NULL;
GO3. CRIAR A CONTA — OPÇÃO B: BASIC (Autenticado)
EXEC msdb.dbo.usp_TenantDatabaseMail_SaveAccount
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@AccountName=N'DBMAIL_ACCOUNT',
@EmailAddress=N'<EMAIL_REMETENTE>',
@DisplayName=N'LAB SQL Tenant',
@ReplyToAddress=N'<EMAIL_TESTE>',
@Description=N'DBMAIL_ACCOUNT - SMTP autenticado',
@MailServerName=N'<SMTP_HOST>',
@Port=<SMTP_PORT>,
@EnableSsl=1,
@AuthenticationMode=N'BASIC',
@UserName=N'<SMTP_USER>',
@Password=N'<SMTP_PASSWORD>',
@SequenceNumber=1,
@NewAccountName=NULL;
GO4. AUTORIZAR EXPLICITAMENTE O LOGIN ATUAL
DECLARE @LoginAtual sysname = ORIGINAL_LOGIN();
EXEC msdb.dbo.usp_TenantDatabaseMail_SetProfileAccess
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@LoginName=@LoginAtual,
@IsEnabled=1,
@IsDefault=1;
GO5. CONSULTAR TUDO QUE FOI CRIADO
EXEC msdb.dbo.usp_TenantDatabaseMail_List;
EXEC msdb.dbo.usp_TenantDatabaseMail_QueueStatus;
GO
Consulta complementar:
SELECT
profile_id,
name,
description
FROM msdb.dbo.sysmail_profile
WHERE name=N'DBMAIL_ACCOUNT_PROFILE';
SELECT
account_id,
name,
email_address,
display_name
FROM msdb.dbo.sysmail_account
WHERE name=N'DBMAIL_ACCOUNT';
GO
A senha SMTP não deve ser exposta ao tenant por consulta.6. ENVIAR E-MAIL
EXEC msdb.dbo.usp_TenantDatabaseMail_Send
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@recipients=N'<EMAIL_TESTE>',
@subject=N'LAB SkyNova 4.5 - Database Mail',
@body=N'Envio de validação do tenant.',
@body_format=N'TEXT',
@copy_recipients=NULL,
@blind_copy_recipients=NULL,
@importance=N'NORMAL';
GO7. CONSULTAR FILA, ENVIADOS E EVENTOS
EXEC msdb.dbo.usp_TenantDatabaseMail_QueueStatus;
EXEC msdb.dbo.usp_TenantDatabaseMail_SentItems
@TopRows=50,
@OnlyFailed=0;
EXEC msdb.dbo.usp_TenantDatabaseMail_EventLog
@TopRows=50;
GO8. MODIFICAR O PERFIL
EXEC msdb.dbo.usp_TenantDatabaseMail_SaveProfile
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@Description=N'DBMAIL_ACCOUNT - descrição alterada',
@NewProfileName=NULL;
GO9. MODIFICAR A CONTA
--SaveAccount é UPSERT. Ao modificar, envie a configuração COMPLETA que deve
permanecer.
--Exemplo ANONYMOUS:
EXEC msdb.dbo.usp_TenantDatabaseMail_SaveAccount
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@AccountName=N'DBMAIL_ACCOUNT',
@EmailAddress=N'<EMAIL_REMETENTE>',
@DisplayName=N'LAB SQL Tenant - Alterado',
@ReplyToAddress=N'<EMAIL_TESTE>',
@Description=N'DBMAIL_ACCOUNT - conta alterada',
@MailServerName=N'<SMTP_HOST>',
@Port=<SMTP_PORT>,
@EnableSsl=0,
@AuthenticationMode=N'ANONYMOUS',
@UserName=NULL,
@Password=NULL,
@SequenceNumber=1,
@NewAccountName=NULL;
GO
--Se estiver usando BASIC, repita todos os parâmetros BASIC, incluindo a senha
válida.10. RENOMEAR A CONTA
EXEC msdb.dbo.usp_TenantDatabaseMail_SaveAccount
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@AccountName=N'DBMAIL_ACCOUNT',
@NewAccountName=N'DBMAIL_ACCOUNT_V2',
@EmailAddress=N'<EMAIL_REMETENTE>',
@DisplayName=N'LAB SQL Tenant',
@ReplyToAddress=N'<EMAIL_TESTE>',
@Description=N'DBMAIL_ACCOUNT - conta renomeada',
@MailServerName=N'<SMTP_HOST>',
@Port=<SMTP_PORT>,
@EnableSsl=0,
@AuthenticationMode=N'ANONYMOUS',
@UserName=NULL,
@Password=NULL,
@SequenceNumber=1;
GO
--Se seu modo for BASIC, adapte os parâmetros correspondentes.11. ADICIONAR ACESSO A OUTRO LOGIN — OPCIONAL
--Só execute se existir outro login do MESMO TENANT:
EXEC msdb.dbo.usp_TenantDatabaseMail_SetProfileAccess
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@LoginName=N'<OUTRO_LOGIN_DO_MESMO_TENANT>',
@IsEnabled=1,
@IsDefault=0;
GO12. REMOVER ACESSO DO OUTRO LOGIN — OPCIONAL
EXEC msdb.dbo.usp_TenantDatabaseMail_SetProfileAccess
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@LoginName=N'<OUTRO_LOGIN_DO_MESMO_TENANT>',
@IsEnabled=0;
GO13. EXCLUIR A CONTA
EXEC msdb.dbo.usp_TenantDatabaseMail_DeleteAccount
@AccountName=N'DBMAIL_ACCOUNT_V2',
@ConfirmAccountName=N'DBMAIL_ACCOUNT_V2';
GO14. EXCLUIR O PERFIL
EXEC msdb.dbo.usp_TenantDatabaseMail_DeleteProfile
@ProfileName=N'DBMAIL_ACCOUNT_PROFILE',
@ConfirmProfileName=N'DBMAIL_ACCOUNT_PROFILE';
GO15. VALIDAÇÃO FINAL
SELECT *
FROM msdb.dbo.sysmail_profile
WHERE name=N'DBMAIL_ACCOUNT_PROFILE';
SELECT *
FROM msdb.dbo.sysmail_account
WHERE name IN (N'DBMAIL_ACCOUNT',N'DBMAIL_ACCOUNT_V2');
GO