none
(Avançado) VBA + Outlook + FTP = Problema RRS feed

  • Pergunta

  • Pessoal, boa tarde!

    Vamos ao cenário: preciso salvar os anexos XML que recebo de determinado cliente via e-mail, numa pasta localizada num FTP externo.

    No Outlook, criei uma regra a qual sempre que receber e-mail de determinada pessoa, ele irá executar o script abaixo, o qual salvará automaticamente o anexo *.xml numa pasta remota (FTP):

    Public Sub ProcessarAnexo(Email As MailItem)
     Dim DirAnexo1 As String
     Dim strRem As String
     Dim MailID As String
     Dim Lido As Boolean
     Dim Mail As Outlook.MailItem
     
     DirAnexo1 = "C:\XML"
     MailID = Email.EntryID
     Set Mail = Application.Session.GetItemFromID(MailID)
     
     
     For Each Anexo In Mail.Attachments
      If Right(Anexo.FileName, 3) = "xml" Then
       If Dir(DirAnexo1 & "\" & strRem, vbDirectory) = "" Then
        MkDir DirAnexo1 & "\" & strRem
        Anexo.SaveAsFile DirAnexo1 & "\" & strRem & "\" & Format(Mail.CreationTime, "yyyymmdd-hhnnss-") & Anexo.FileName
       Else
        Anexo.SaveAsFile DirAnexo1 & "\" & strRem & "\" & Format(Mail.CreationTime, "yyyymmdd-hhnnss-") & Anexo.FileName
       End If
      End If
     Mail.UnRead = False
     Next
     
     Set Mail = Nothing
    End Sub
    

    Então, toda vez que receber um e-mail do senhor FULANO, o Outlook automaticamente irá rodar este script acima, fazendo com que o anexo XML, seja salvo na pasta C:\XML.

    Até ai tudo bem, pois a regra e o script estão funcionando normalmente.

    PORÉM...............

    O salvamento destes arquivos deverão ser feitos num servidor FTP, porém este script acima só se trabalha localmente, então nada de colocar:

     DirAnexo1 = "ftp://ftp.minhaempresa.com.br/cte_xml"

    Pensando nisso, resolvi mapear o FTP para que o mesmo me aparecesse localmente (geralmente com a letra da unidade apenas). Mas, percebi que o mapeamento FTP padrão do Windows não te dá letras, porém o atalho local do mesmo fica em:

    "C:\Users\user\AppData\Roaming\Microsoft\Windows\Network Shortcuts\cte_xml"

    E já realizei o teste de sincronização, funciona normal (colocando um arquivo diretamente nesta pasta, um tempo depois o mesmo aparece online no FTP).

    Entretanto, quando executo o script com esse caminho de pasta, o mesmo não faz nada, e é ai que mora minha dúvida.

    De prima, achei que fosse permissão de pasta, porém a pasta mapeada não tem as opções de segurança padrão no menu "propriedades". E mesmo se fosse algo assim, não iria conseguir arrastar um arquivo ali dentro, concordam?

    Pois bem, preciso de um auxílio profissional sobre, pois isso está começando a me fazer perder cabelos já... haha

    Se alguém souber de algo, fico imensamente agradecido. E, sigo a disposição para qualquer informação que se faça necessária.

    Um forte abraço e boa tarde!

    terça-feira, 24 de fevereiro de 2015 20:05

Respostas

  • Bem, acredito que descobri o problema...

    Realmente é problema com o salvamento no FTP, que pelo mapeamento padrão do Windows, não funciona como deveria.

    Como solução, testei a ferramenta Webdrive FTP, a qual se saiu muito bem e nos fará adquiri-la.

    Boa sorte a quem estiver com o mesmo problema!

    • Marcado como Resposta Cometti quinta-feira, 26 de fevereiro de 2015 17:15
    quinta-feira, 26 de fevereiro de 2015 17:15

Todas as Respostas

  • Bom dia pessoal, alguma novidade?
    quarta-feira, 25 de fevereiro de 2015 10:42
  • Bem, acredito que descobri o problema...

    Realmente é problema com o salvamento no FTP, que pelo mapeamento padrão do Windows, não funciona como deveria.

    Como solução, testei a ferramenta Webdrive FTP, a qual se saiu muito bem e nos fará adquiri-la.

    Boa sorte a quem estiver com o mesmo problema!

    • Marcado como Resposta Cometti quinta-feira, 26 de fevereiro de 2015 17:15
    quinta-feira, 26 de fevereiro de 2015 17:15
  • Boa tarde Cometti.

    Realmente para salvar no FTP o procedimento é um pouco diferente do que salvar localmente, mas basta um módulo adicional (apenas código normal), para que vc consiga fazer isso. Não é necessário nenhuma ferramenta externa.

    Gostaria de um exemplo ou já se decidiu por adquirir a ferramenta que citou?

    Aguardo.


    Filipe Magno

    sábado, 28 de fevereiro de 2015 20:27