Script: encaminha todos os emails da caixa de entrada, depois que os usuários enviam "solicitação" (Outlook 2003)

2

Eu estou procurando um script do Outlook (2003).

O que eu preciso: Desejo encaminhar todos os meus emails da caixa de correio-A (de um PC) para a caixa de correio-B (no meu telefone). A captura é: Essa regra deve ser executada apenas quando eu enviar uma 'solicitação' para a caixa de correio-A.

O que eu fiz: Eu criei duas regras no Outlook 2003.

Regra 1 - Esta regra encaminha todos os emails da caixa de correio-A para a caixa de correio-B. Esta regra funciona, mas não é automatizada (só roda quando pressiono o botão 'regras de execução'). Eu só quero receber e-mails "quando eu quiser".

Regra2- Eu criei uma segunda regra no Outlook. Esta regra começa (em si) quando a caixa de correio A recebe um email com 'get_mail' como assunto do email.

Meu gol: Eu quero que a regra 2 inicie um script. Obviamente, esse script deve executar a regra1.

Resultado: Todos os emails da caixa de correio-A são encaminhados para a caixa de correio-B.

Fundo: Meu objetivo é ler meus e-mails de trabalho no meu telefone, indo do trabalho para casa. Ao enviar um email do meu celular para o meu PC (com o assunto do e-mail get_mail), meu PC (caixa de correio-A) encaminha todos os e-mails para o meu telefone (caixa de correio-B).

Isso é possível usando o VBA? E como deve ser o código? Não tenho experiência com scripts, mas sou bom com PCs e software em geral. Então, eu deveria poder instalá-lo quando alguém fornecer o código.

( p.s. Não é possível simplesmente instalar a conta pop / imap no meu telefone)

user316237
fonte

Respostas:

0

Sim, é possível ter uma regra acionando outra regra. Aqui está um procedimento de VBA para o Outlook que deve funcionar:

Sub RunRuleToForwardEmail(MyMail As MailItem)

    Dim st As Outlook.Store
    Dim myRule As Outlook.Rule

    ' get default store (where rules live)
    Set st = Application.Session.DefaultStore
    ' get rule
    Set myRule = st.GetRules("change_this_to_whatever_the_the_name_of_rule1_is") 'change this line
    myRule.Execute

End Sub

Lembre-se de mudar este texto: change_this_to_whatever_the_the_name_of_rule1_is.

Depois de salvar seu projeto do Outlook VBA, edite as ações de rule2. Você deve então poder escolher o script acima na lista de opções.

Garrulinae
fonte
Obrigado por sua pronta resposta. O nome da regra é, na verdade, 'rule1'. Então mudei sua parte do código para 'Set myRule = st.GetRules ("rule1")'. Isso está correto? Consegui selecionar o script como ação na rule2. Infelizmente não funcionou. Eu cometi um erro?
user316237
Sim, está correto. Eu tentei por mim mesmo e funcionou (embora minha regra 1 categorizasse apenas meu e-mail, não o encaminhei). Adicione este código extra no início do procedimento: MsgBox "The RunRuleToForwardEmail VBA procedure is running". Coloque isso em sua própria linha antes da primeira declaração Dim. Então tente. Se o código estiver sendo executado corretamente, uma mensagem deverá aparecer no Outlook para alertá-lo. Se esta mensagem não aparecer, então algo deve estar errado com a regra que deve ser acionada.
Garrulinae
Não há sucesso :-(. Código é o seguinte: [Link] Sub RunRuleToForwardEmail (MyMail como MailItem) MsgBox "O procedimento VBA RunRuleToForwardEmail está sendo executado" Dim st Como Outlook.Store Dim myRule Como Outlook.Rule Dim rl Como Outlook.Rule 'get armazenamento padrão (onde as regras residem) Set st = Application.Session.DefaultStore 'get rule Set myRule = st.GetRules (rule1) myRule.Execute End Sub
user316237
Aha - o texto rule1 tem que estar rodeado de aspas: "rule1". A mensagem ainda deve ter aparecido, não é?
Garrulinae
Eu adicionei as marcas de citação, nada mudou. Eu também não vi nenhuma mensagem. Eu adicionei a rule1 'set flag color green'. E para rule2 'set flag color purple'. Quando o email com assunto get_mails chega, este email recebe uma bandeira roxa. Alguma outra maneira de criar um 'cheque'?
user316237