Eu tenho medo que você tenha que fazer isso com um script, já que o Outlook gosta de protegê-lo de si mesmo. As instruções abaixo são de aqui . Eu modifiquei um pouco para aplicar às suas planilhas do Excel. Tenha em mente que, se eles são do Excel 2007, você terá que usar "xlsx" para a sua extensão de arquivo no script.
- Abra o Outlook. Estou usando o Outlook 2007, mas isso também deve funcionar no Outlook 2003. Vá em Ferramentas > Macro > Editor do Visual Basic.
- Com a pasta do projeto destacada (no canto superior esquerdo, no painel PROJETO; acabei de usar o projeto padrão), clique com o botão direito e escolha Inserir > Módulo. Copie e cole o seguinte código na janela principal do editor:
[vb]Sub SaveAttachmentsToDisk(Item As Outlook.MailItem)
Dim olkFolder As Outlook.MAPIFolder, _
olkAttachment As Outlook.Attachment, _
objFSO As Object, _
strRootFolderPath As String, _
strFilename As String, _
intCount As Integer
‘Change the following path to match your environment
strRootFolderPath = "z:\www\departments\webreports\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set olkFolder = Application.ActiveExplorer.CurrentFolder
If Item.Attachments.Count > 0 Then
For Each olkAttachment In Item.Attachments
If objFSO.GetExtensionName(LCase(olkAttachment.FileName))
= "xls" Then
strFilename = olkAttachment.FileName
intCount = 0
Do While True
If objFSO.FileExists(strRootFolderPath &
strFilename) Then
intCount = intCount + 1
objFSO.deletefile (strRootFolderPath & strFilename)
Else
Exit Do
End If
Loop
olkAttachment.SaveAsFile strRootFolderPath & strFilename
End If
Next
End If
Set objFSO = Nothing
Set olkAttachment = Nothing
Set olkFolder = Nothing
End Sub[/vb]
-
Você precisará garantir que tenha o nível de segurança adequado configurado para processar adequadamente o script. No Outlook, vá para Ferramentas > Macro > Segurança. Eu escolhi Sem verificação de segurança para macros. Isso pode ser muito solto de uma restrição para o seu ambiente; Nesse caso, tente a próxima configuração mais alta.
-
Crie uma nova regra do Outlook (Ferramentas > Regras e alertas) para refletir suas alterações. Minha regra procura novas mensagens de um endereço de e-mail específico e tem um anexo (o arquivo da web que desejo mover), move a mensagem para uma pasta específica (para que eu possa ter um backup da mensagem / anexo) e executa module / script acima para mover o arquivo da web para o compartilhamento de samba apropriado. Aqui está a aparência da descrição da minha regra:
Apply this rule after the message arrives
from [email protected]
and which has an attachment
and on this machine only
move it to the WEBBACKUP folder
and run Project1.SaveAttachmentsToDisk
- Clique em Aplicar e em OK para salvar sua regra. Um par de advertências: essa é uma regra do lado do cliente, portanto, você deve manter o Outlook em execução para que a regra seja processada. Além disso, o código irá sobrescrever qualquer arquivo (no meu caso, no compartilhamento de samba de destino) que tenha o mesmo nome do anexo. Se você deseja apenas fazer uma cópia, pode acrescentar um número ao nome do anexo. Para fazer isso, substitua esta linha de código:
objFSO.deletefile (strRootFolderPath &
strFilename)
com
strFilename = "Copy (" & intCount & ")
of " & olkAttachment.FileName