Usuário com melhor resposta
Qual variável armazena o usuário do outlook que recebe o e-mail?

Pergunta
-
Estou um tempão batendo cabeça, mas como não sou da área não estou conseguindo...
Tenho 10 contas de e-mail no meu outlook (user1@meudom.com.br, user2@meudom.com.br, etc) e preciso salvar os anexos dos e-mails em pastas específicas dos e-mails,
O código abaixo está funcionando, mas salva os anexos na pasta strFolder = "C:\ARQS_RECS_EMAIL\" & Item.To & "\"... E o valor de "Item.To" pode ser diferente para uma mesma conta, dependendo do remetente do e-mail.
O que devo colocar no lugar de "Item.To" para que os anexos sejam salvos em uma pasta com o nome da conta de e-mail, ou seja, os emails enviados para o user1@meudom.com.br do meu outlook sejam salvos na pasta de arquivos user1@meudom.com.br.
O código que está funcionando:
Public Sub SalvarAnexo(Item As MailItem)
Dim att As Attachment
Dim strFile As String
Dim strExt As String
Dim strFolder As String
For Each att In Item.Attachments
If Not (LCase(Right(att.FileName, 3)) = "jpg") Then
strFolder = "C:\ARQS_RECS_EMAIL\" & Item.To & "\"
On Error Resume Next
MkDir strFolder
On Error GoTo 0
strFile = strFolder & Format(Item.CreationTime, "yyyymmdd_hhnnss_") & att.FileName
att.SaveAsFile strFile
On Error GoTo 0
End If
Next att
End SubAgradeço imensamente,
Respostas
-
Acabei de resolver com:
para = Item.ReceivedByName
Obrigado mesmo assim! Suas dicas ajudaram na minha pesquisa.
Fui!
- Sugerido como Resposta Antero Marques quinta-feira, 21 de abril de 2016 10:26
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator segunda-feira, 25 de abril de 2016 16:04
Todas as Respostas
-
Amigos,
Estou um tempão batendo cabeça, mas como não sou da área não estou conseguindo...
Tenho 10 contas de e-mail no meu outlook (user1@meudom.com.br, user2@meudom.com.br, etc) e preciso salvar os anexos dos e-mails em pastas específicas dos e-mails,
O código abaixo está funcionando, mas salva os anexos na pasta strFolder = "C:\ARQS_RECS_EMAIL\" & Item.To & "\"... E o valor de "Item.To" pode ser diferente para uma mesma conta, dependendo do remetente do e-mail.
O que devo colocar no lugar de "Item.To" para que os anexos sejam salvos em uma pasta com o nome da conta de e-mail, ou seja, os emails enviados para o user1@meudom.com.br do meu outlook sejam salvos na pasta de arquivos user1@meudom.com.br.
Agradeço imensamente,
- Mesclado Felipe Costa GualbertoMVP, Moderator terça-feira, 19 de abril de 2016 21:18 Repetição
-
O código que está funcionando:
Public Sub SalvarAnexo(Item As MailItem)
Dim att As Attachment
Dim strFile As String
Dim strExt As String
Dim strFolder As String
For Each att In Item.Attachments
If Not (LCase(Right(att.FileName, 3)) = "jpg") Then
strFolder = "C:\ARQS_RECS_EMAIL\" & Item.To & "\"
On Error Resume Next
MkDir strFolder
On Error GoTo 0
strFile = strFolder & Format(Item.CreationTime, "yyyymmdd_hhnnss_") & att.FileName
att.SaveAsFile strFile
On Error GoTo 0
End If
Next att
End SubAgradeço imensamente,
-
Não entendi. Você já especificou o Item.To como uma variável do caminho onde os arquivos são salvos.
Desta forma, o anexo é salvo num diretório que depende da conta em que você está logado.
Poderia explicar melhor?
http://www.ambienteoffice.com.br - http://www.clarian.com.br
-
Não entendi. Você já especificou o Item.To como uma variável do caminho onde os arquivos são salvos.
Desta forma, o anexo é salvo num diretório que depende da conta em que você está logado.
Poderia explicar melhor?
http://www.ambienteoffice.com.br - http://www.clarian.com.br
Obrigado pela atenção!
Como eu disse, esse código está funcionando e os arquivos são salvos na pasta criada pelo "item.To". Só que o "item. To" acaba gerando diversas pastas para um mesmo usuário do outlook, uma vez que cada remetente tem um cadastro particular do usuário.
Imagine um usuário chamado Roberto Carlos com uma conta user1@meudom.com.br. O "item.To" acaba gerando pastas como "robertão", "Roberto Carlos", "roberto fornecedor" e assim vai... Aí fica difícil administrar...
O que eu quero é que a pasta seja única, independentemente da informação para "item.To" trazido pelo e-mail. Se alguém mandar um e-mail para o user1@meudom.com.br do meu exemplo, todos os arquivos serão salvos na pasta. Pensei que no lugar de "item.To" pudesse existir algo como item.To.Account"...
Será que deu pra entender?
-
-
-
Boa tarde, Felipe.
Fiz a alteração conforme abaixo, mas deu o seguinte erro:
Erro em tempo de execução'91': A variável do objeto ou a variável do bloco 'With' não foi definida.
Será que falta algo?
Public Sub SalvarAnexo(Item As MailItem)
Dim att As Attachment
Dim strFile As String
Dim strExt As String
Dim strFolder As String
For Each att In Item.Attachments
If Not (LCase(Right(att.FileName, 3)) = "jpg") Then
para = Item.Recipients(1).AddressEntry.GetExchangeUser.PrimarySmtpAd
strFolder = "C:\ARQS_RECS_EMAIL\" & para & "\"
On Error Resume Next
MkDir strFolder
On Error GoTo 0
strFile = strFolder & Format(Item.CreationTime, "yyyymmdd_hhnnss_") & att.FileName
att.SaveAsFile strFile
On Error GoTo 0
End If
Next att
End Sub
-
-
Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.
---
para = Item.SenderMailAddress
http://www.ambienteoffice.com.br - http://www.clarian.com.br
-
-
-
-
Acabei de resolver com:
para = Item.ReceivedByName
Obrigado mesmo assim! Suas dicas ajudaram na minha pesquisa.
Fui!
- Sugerido como Resposta Antero Marques quinta-feira, 21 de abril de 2016 10:26
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator segunda-feira, 25 de abril de 2016 16:04