none
Database Mail não enviando e-mails RRS feed

  • Pergunta

  • Olá,

    Temos algumas procedures que enviam e-mails automaticamente e esses dias tivemos problemas no servidor de e-mail ocasionando uma fila de e-mails não enviados. Agora está tudo normalizado mas o Database Mail não está enviando nada, tudo que chega fica na fila de espera, vi que na ExternalMailQueue existem registros na fila mas não consigo remover, parece que estão travados ou parados, gostaria de limpar isso para começar tudo denovo.

    EXECUTE msdb.dbo.sysmail_help_queue_sp @queue_type = 'Mail' ;

    queue_type length      state                                                            last_empty_rowset_time  last_activated_time
    ---------- ----------- ---------------------------------------------------------------- ----------------------- -----------------------
    mail       761         INACTIVE                                                         2013-01-28 15:01:45.500 2013-01-28 15:01:45.480

    Executei o comando abaixo mas ele não remove registro da ExternalMailQueue , alguém sabe me dizer como limpar isso? de onde o sistema pega essas informações.

    DECLARE @GETDATE datetime
    SET @GETDATE = GETDATE()
    EXECUTE msdb.dbo.sysmail_delete_mailitems_sp 
    @sent_before = @GETDATE;
    GO

    Desde já agradeço!

    segunda-feira, 28 de janeiro de 2013 15:10

Respostas

  • Boa Tarde, Bruno da uma olhada neste link vê se te atende.

    http://blogs.msdn.com/b/sqlserverfaq/archive/2010/03/18/database-mail-failing-with-the-service-queue-externalmailqueue-is-currently-disabled-message.aspx

    • Marcado como Resposta Bruno Christofer segunda-feira, 28 de janeiro de 2013 16:14
    segunda-feira, 28 de janeiro de 2013 15:29

Todas as Respostas

  • Boa Tarde, Bruno da uma olhada neste link vê se te atende.

    http://blogs.msdn.com/b/sqlserverfaq/archive/2010/03/18/database-mail-failing-with-the-service-queue-externalmailqueue-is-currently-disabled-message.aspx

    • Marcado como Resposta Bruno Christofer segunda-feira, 28 de janeiro de 2013 16:14
    segunda-feira, 28 de janeiro de 2013 15:29
  • Opa,

    Valeu M. Almeida, ainda não consegui resolver meu problema por completo mas já me ajudou bastante, caso alguém precise limpar esses registros segue abaixo o comando necessário:

    Use MSDB

    ALTER QUEUE ExternalMailQueue WITH STATUS = ON

    set nocount on

    declare @Conversation_handle uniqueidentifier;

    declare @message_type nvarchar(256);

    declare @counter bigint;

    declare @counter2 bigint;

    set @counter = (select count(*) from ExternalMailQueue)

    set @counter2=0

    while (@counter2<=@counter)

    begin

    receive @Conversation_handle = conversation_handle, @message_type = message_type_name from ExternalMailQueue

    set @counter2 = @counter2 + 1

    end

    Agora vou ver porque não está enviando os emails, acredito que deve ser algo relacionado a proxy, porta, firewall... mudaram de 25 para 587 mtf!

    Abraços

    segunda-feira, 28 de janeiro de 2013 16:13