sysmail_unsentitems (Transact-SQL)
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure
Contém uma linha para cada mensagem do Database Mail com o status não enviado ou repetindo . As mensagens com status unsent ou retrying ainda estão na fila de email e podem ser enviadas a qualquer momento. As mensagens podem ter o status não enviado pelos seguintes motivos:
A mensagem é nova e foi colocada na fila de email, mas o Database Mail está cuidando de outras mensagens e ainda não a alcançou.
O programa externo do Database Mail não está em execução e nenhum email está sendo enviado.
As mensagens podem ter o status de repetição pelos seguintes motivos:
- O Database Mail tentou enviar o email, mas o servidor de email SMTP não pôde ser contatado. O Database Mail continuará a tentar enviar a mensagem usando outras contas do Database Mail atribuídas ao perfil que enviou a mensagem. Se nenhuma conta puder enviar o e-mail, o Database Mail aguardará o período de tempo configurado para o parâmetro Atraso de Repetição de Conta e tentará enviar a mensagem novamente. O Database Mail usa o parâmetro Tentativas de Repetição de Conta para determinar quantas vezes tentar enviar a mensagem. As mensagens mantêm o status de repetição enquanto o Database Mail estiver tentando enviar a mensagem.
Use essa exibição para saber quantas mensagens estão aguardando o envio e há quanto tempo estão na fila de email. Normalmente, o número de mensagens não enviadas será baixo. Faça um teste de parâmetro durante as operações normais para determinar um número razoável de mensagens que devam ficar na fila para suas operações.
Para ver todas as mensagens processadas pelo Database Mail, use sysmail_allitems (Transact-SQL). Para ver apenas mensagens com o status de falha, use sysmail_faileditems (Transact-SQL). Para ver apenas as mensagens que foram enviadas, use sysmail_sentitems (Transact-SQL).
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
mailitem_id | int | Identificador do item de email na fila de email. |
profile_id | int | O identificador do perfil usado para enviar a mensagem. |
Destinatários | varchar(max) | Os endereços de email dos destinatários da mensagem. |
copy_recipients | varchar(max) | Os endereços de email daqueles que recebem cópias da mensagem. |
blind_copy_recipients | varchar(max) | Os endereços de email daqueles que recebem cópias da mensagem, mas cujos nomes não aparecem no cabeçalho. |
subject | nvarchar(510) | A linha de assunto da mensagem. |
Corpo | varchar(max) | O corpo da mensagem. |
body_format | varchar(20) | O formato do corpo da mensagem. Os valores possíveis são TEXT e HTML. |
importance | varchar(6) | O parâmetro de importância da mensagem. |
sensibilidade | varchar(12) | O parâmetro de sensibilidade da mensagem. |
file_attachments | varchar(max) | Uma lista delimitada por ponto-e-vírgula de nomes de arquivo anexados à mensagem de email. |
attachment_encoding | varchar(20) | O tipo de anexo de email. |
consulta | varchar(max) | A consulta executada pelo programa de email. |
execute_query_database | sysname | O contexto de banco de dados no qual o programa de email executou a consulta. |
attach_query_result_as_file | bit | Quando o valor é 0, os resultados da consulta são incluídos no corpo da mensagem de email, depois do conteúdo do corpo. Quando o valor é 1, os resultados são retornados como um anexo. |
query_result_header | bit | Quando o valor é 1, os resultados da consulta continham cabeçalhos de coluna. Quando o valor é 0, os resultados da consulta não incluem cabeçalhos de coluna. |
query_result_width | int | O parâmetro query_result_width da mensagem. |
query_result_separator | char(1) | O caractere usado para separar as colunas na saída da consulta. |
exclude_query_output | bit | O parâmetro exclude_query_output da mensagem. Para obter mais informações, consulte sp_send_dbmail (Transact-SQL). |
append_query_error | bit | O parâmetro append_query_error da mensagem. 0 indica que o Database Mail não deverá enviar a mensagem de email se houver um erro na consulta. |
send_request_date | datetime | A data e a hora em que a mensagem foi colocada na fila de email. |
send_request_user | sysname | O usuário que enviou a mensagem. Esse é o contexto do usuário do procedimento de email do banco de dados, não o campo De da mensagem. |
sent_account_id | int | O identificador da conta do Database Mail usado para enviar a mensagem. Será sempre NULL para essa exibição. |
sent_status | varchar(8) | Será cancelado se o Database Mail não tiver tentado enviar o e-mail. Tentará novamente se o Database Mail não enviar a mensagem, mas estiver tentando novamente. |
sent_date | datetime | A data e a hora em que o Database Mail tentou enviar o email pela última vez. Será NULL se o Database Mail não tentar enviar a mensagem. |
last_mod_date | datetime | A data e a hora da última modificação da linha. |
last_mod_user | sysname | O usuário que modificou a linha pela última vez. |
Comentários
Na solução de problemas do Database Mail, essa exibição pode ajudá-lo a identificar a natureza do problema, mostrando o número de mensagens a serem enviadas e há quanto tempo estão aguardando o envio. Se nenhuma mensagem for enviada, talvez o programa externo do Database Mail não esteja funcionando ou haja um problema de rede impedindo que ele entre em contato com os servidores SMTP. Se muitas das mensagens não enviadas tiverem o mesmo profile_id, pode haver um problema com o servidor SMTP. Considere a opção de adicionar outras contas ao perfil. Se as mensagens estiverem sendo enviadas, mas elas estiverem gastando muito tempo na fila, o SQL Server poderá precisar de mais recursos para processar o volume de mensagens necessário.
Permissões
Concedido à função de servidor fixa sysadmin e à função de banco de dados DatabaseMailUserRole. Quando executado por um membro da função de servidor fixa sysadmin , esse modo de exibição mostra todas as mensagens não enviadas ou repetidas . Todos os outros usuários veem apenas as mensagens não enviadas ou repetidas que enviaram.