none
Macro para salvar anexos automaticamente no outlook 2007 para uma pasta no c RRS feed

  • Pergunta

  • Trabalho em um supermercado e preciso salvar vários anexos de xml em pasta separadas Ex: de Fornecedor1 para C:/Xml/Fornecedor1, pois não entendo muito de scripts, preciso configurar o Outlook para que assim que receber um e-mail, ele verifique se este e-mail contem anexo. No caso de conter anexo ele faça uma cópia deste anexo para uma pasta no diretório c:.

    Este e-mail estará configurado em sevirdor, recebendo arquivos .XML referente a nota fiscal eletrônica, achei umas resposta neste site mesmo mas porém não consegui usa-la, alguem poderia me ajudar.

    veja o que encontrei

    Public Sub ProcessarAnexo(Email As MailItem)
        Dim DiretorioAnexos As String
        DiretorioAnexos = "colocar aqui a pasta destino. pode ser local em rede também"

        Dim MailID As String
        Dim Mail As Outlook.MailItem
        
        MailID = Email.EntryID
        Set Mail = Application.Session.GetItemFromID(MailID)
            
        For Each Anexo In Mail.Attachments
            If Right(Anexo.FileName, 3) = "xml" Then
                MsgBox (Anexo.FileName)
                Anexo.SaveAsFile DiretorioAnexos & Anexo.FileName
            End If
        Next
        
        Set Mail = Nothing
    End Sub

     

    e também estes dois

    http://www.ambienteoffice.com.br/outlook/executar_macro_ao_receber_e-mail/
    http://www.ambienteoffice.com.br/outlook/salvar_anexos_de_novas_mensagens_numa_pasta/

    Agradeço que puder me ajudar

    beniltoncolatina@hotmail.com
    quarta-feira, 7 de setembro de 2011 19:06

Respostas

  • 1) Você tem que descobrir primeiro qual o problema: Script ou Regra do Outlook

    Adicione a linha a seguir no inicio da macro

    MsgBox "teste"

    Faça testes utilizando a opção "Executar regra agora" no gerenciamento de regras e alertas e veja se vai aparecer uma janela com a mensagem.

    2) Se vc tem vários fornecedores, o que difere um do outro? O e-mail?

    Vc pode utilizar um select case para alterar a váriavel do diretório de acordo com e-mail de quem enviou a mensagem.

        Select Case Item.SenderEmailAddress
            Case "teste@fornecedor1.com.br"
                DiretorioAnexo = "c:\fornecedor1"
            Case "teste@fornecedor2.com.br"
                DiretorioAnexo = "c:\fornecedor2"
        End Select
    


    Fábio de Paula Junior
    segunda-feira, 12 de setembro de 2011 12:33
    Moderador

Todas as Respostas

  • 1) Você tem que descobrir primeiro qual o problema: Script ou Regra do Outlook

    Adicione a linha a seguir no inicio da macro

    MsgBox "teste"

    Faça testes utilizando a opção "Executar regra agora" no gerenciamento de regras e alertas e veja se vai aparecer uma janela com a mensagem.

    2) Se vc tem vários fornecedores, o que difere um do outro? O e-mail?

    Vc pode utilizar um select case para alterar a váriavel do diretório de acordo com e-mail de quem enviou a mensagem.

        Select Case Item.SenderEmailAddress
            Case "teste@fornecedor1.com.br"
                DiretorioAnexo = "c:\fornecedor1"
            Case "teste@fornecedor2.com.br"
                DiretorioAnexo = "c:\fornecedor2"
        End Select
    


    Fábio de Paula Junior
    segunda-feira, 12 de setembro de 2011 12:33
    Moderador
  • Benilton,

    Alguma novidade sobre o assunto?


    Fábio de Paula Junior
    quarta-feira, 14 de setembro de 2011 15:01
    Moderador
  • Bom Dia

    gostaria de saber como eu pego o nome do remetente que enviou o xml?

    porque eu gostaria de criar uma pasta com o nome do remetente para depois salvar o xml dentro dela


    segunda-feira, 3 de dezembro de 2012 17:12