locked
sp_send_dbmail erro de Attachment file is invalid Error 22051 quando usado pasta compartilhada RRS feed

  • Pergunta

  • Estou com o seguinte problema. Meu cenário é o seguinte:

    Tenho um servidor de aplicação e outro de banco de dados (Sql server 2012), ambos servidores com windows server 2008 R2 Data Center

    Minha rotina de envio de e-mail (sp_send_dbmail), lê a pasta compartilhada no servidor de aplicação para enviar os arquivos anexos.

    Essa rotina sempre funcionou. Porém, eu precisei criar uma replicação online e estava exibindo um erro informando que o nome do servidor remoto estava diferente com o do servidor. Para resolver este problema executei o script abaixo:

    DECLARE @old_name varchar(128), 
    @win_nt_server_name varchar(128), 
    @server_name varchar(128)
    
    SELECT @old_name = CONVERT(VARCHAR(128), @@SERVERNAME), 
    @win_nt_server_name = CONVERT(VARCHAR(128), Serverproperty('Servername')), 
    @server_name = (SELECT TOP (1) name from master.sys.servers)
    PRINT 'Local SQL Server name:' + @old_name
    PRINT 'WindowsNT Server name:' + @win_nt_server_name
    PRINT 'Server name:' + @server_name
    
    /*********************************************************************
    2) The business end
    *********************************************************************/
    exec sp_dropserver @old_name
    GO
    exec sp_addserver @server_name, local
    GO
    

    Realmente o nome do servidor na tabela master.sys.servers estava diferente com o do servidor, feito isso resolvi o problema da minha replicação.

    Após esse procedimento, a rotina de e-mail deixou de funcionar quando tem arquivos anexos. Já fiz os testes colocando para ler da pasta local e o e-mail é enviado, mas no caminho da pasta compartilhada apresenta o erro abaixo:

    NT SERVICE\SQLSERVERAGENT. Attachment file \\ServidorDeAplicacao\ANEXOS\PROPOSTAS\PR_15_0004_3_95.pdf is invalid. [SQLSTATE 42000] (Error 22051) 

     As pastas estão com permissão full para o servidor de banco de dados e Everyone, já alterei o usuário do serviço sql server agent para executar como administrador do domino e mesmo assim não funcionou. Eu tenho esse mesmo cenário no ambiente de produção funcionando perfeitamente, inclusive essas máquinas são clones do ambiente de produção.

    Alguma ideia do que pode ser e como resolver?


    Desenvolvedor .NET

    sexta-feira, 15 de janeiro de 2016 16:46

Respostas

  • Jefter_ssa,

    Você já conferiu se há algum detalhamento adicional nos logs do Database Mail?

    Não há nenhuma falha de relação de confiança com o domínio, visto que este servidor teve seu nome recentemente alterado?

    Tenta criar um usuário de domínio e configurar ele para o SQL Server Agent. Posteriormente libera acesso para o usuário do SQL Server Agent poder acessar o compartilhamento.


    Felipe Lauffer MCSA: SQL Server | MCP

    sexta-feira, 15 de janeiro de 2016 17:18
  • Jefter_ssa,

    Verifique na guia segurança e também na opção de compartilhamento os usuários que possuem permissão para acessar esta pasta, provavelmente o usuário que esta conectado no SQL Server fazendo uso da SP_send_dbmail não possui permissão para copiar o arquivo.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 19 de janeiro de 2016 13:36
    Moderador

Todas as Respostas

  • Jefter_ssa,

    Você já conferiu se há algum detalhamento adicional nos logs do Database Mail?

    Não há nenhuma falha de relação de confiança com o domínio, visto que este servidor teve seu nome recentemente alterado?

    Tenta criar um usuário de domínio e configurar ele para o SQL Server Agent. Posteriormente libera acesso para o usuário do SQL Server Agent poder acessar o compartilhamento.


    Felipe Lauffer MCSA: SQL Server | MCP

    sexta-feira, 15 de janeiro de 2016 17:18
  • Jefter_ssa,

    Verifique na guia segurança e também na opção de compartilhamento os usuários que possuem permissão para acessar esta pasta, provavelmente o usuário que esta conectado no SQL Server fazendo uso da SP_send_dbmail não possui permissão para copiar o arquivo.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 19 de janeiro de 2016 13:36
    Moderador