Encaminhamento com script para o Outlook 2003

4

Temos um funcionário em vendas que passou para uma semana de 4 dias (preparando-se para a aposentadoria), então toda quinta-feira à tarde seu e-mail precisa ser encaminhado para outro usuário e toda sexta-feira à tarde ele precisa ser atrasado. / p>

Estou usando o script VBS abaixo para fazer isso, executado por meio do Agendador de Tarefas. Embora o script pareça funcionar, com base no que vejo quando vejo as configurações do Exchange do usuário, o Exchange nem sempre reconhece que a configuração foi alterada. por exemplo. Na última quinta-feira, o encaminhamento foi ativado e funcionou corretamente. Na sexta-feira, o roteiro fez o possível para liberar o encaminhamento, mas o Exchange continuou a enviar mensagens durante todo o final de semana.

Descobri que posso forçar o Exchange a honrar a configuração alterada apenas para abrir e fechar as propriedades do usuário no ADUC. Claro que não quero ter que fazer isso. Existe uma maneira não manual que eu possa fazer com que o Exchange leia e honre o cenário?

O script (VBS):

' Call this script with the following parameters:
'
' SrcUser       - The logon ID of the suer who's account is to be modified
' DstUser       - The logon account of the person to who mail is to be forwarded
'                           Use "reset" to clear the email forwarding

SrcUser = WScript.Arguments.Item(0)
DstUser = WScript.Arguments.Item(1)

SourceUser = SearchDistinguishedName(SrcUser) 'The user login name
Set objUser = GetObject("LDAP://" & SourceUser)

If DstUser = "reset" then
objUser.PutEx 1, "altRecipient", ""
Else
ForwardTo = SearchDistinguishedName(DstUser)' The contact common name
objUser.Put "AltRecipient", ForwardTo
End If

objUser.SetInfo

Public Function SearchDistinguishedName(ByVal vSAN)
Dim oRootDSE, oConnection, oCommand, oRecordSet

    Set oRootDSE = GetObject("LDAP://rootDSE")
    Set oConnection = CreateObject("ADODB.Connection")
    oConnection.Open "Provider=ADsDSOObject;"
    Set oCommand = CreateObject("ADODB.Command")
    oCommand.ActiveConnection = oConnection
    oCommand.CommandText = "<LDAP://" & oRootDSE.get("defaultNamingContext") & ">;(&(objectCategory=User)(samAccountName=" & vSAN & "));distinguishedName;subtree"
    Set oRecordSet = oCommand.Execute
    On Error Resume Next
    SearchDistinguishedName = oRecordSet.Fields("DistinguishedName")
    On Error GoTo 0
    oConnection.Close
    Set oRecordSet = Nothing
    Set oCommand = Nothing
    Set oConnection = Nothing
    Set oRootDSE = Nothing
End Function

Editar:

Se alguém tiver outra maneira de atingir o mesmo objetivo (encaminhamento e cancelamento programados), estou aberto a sugestões. Certamente esta necessidade foi encontrada e encontrada antes.

Atualização:

Por razões que eu nem vou tentar adivinhar, sem alterar nada, o sistema de script tem funcionado quase completamente confiável por algum tempo. Nos últimos 3 ou 4 meses, ele só falhou uma vez.

    
por John Gardeniers 17.05.2010 / 01:24

2 respostas

1

Não seria mais fácil (e mais gentil) simplesmente configurar uma caixa de correio "Vendas" compartilhada, deixe que todos os salesdroids necessários a usem. Nunca será tão rápido quanto um simples redirecionamento, mas não há necessidade de script ou qualquer outra coisa. (Usamos muitos aqui, permite que os usuários mudem de função, sejam promovidos, desistam, etc, sem ter que se preocupar em redirecionar ou informar os clientes sobre novos endereços, etc.).

A outra alternativa (no Exchange) é uma pasta pública, basta criar & defina permissões para todos os que precisarão de acesso (usando o Outlook), em seguida, atribua o endereço de email que você deseja (no System Manager, o padrão será "[email protected]"), então todos os emails irão para lá. tem controles / permissões de delegação semelhantes / familiares etc. Se determinados usuários precisarem acessar calendários ou caixas de correio compartilhados, eles poderão defini-los como "Favoritos".

Dessa forma, os usuários podem "Pegar" mensagens para si mesmos, movendo-os para sua própria caixa de correio, ou excluindo-os quando feitos etc. Além disso, parece profissional quando você vê: Joe Bloggs em nome de [email protected]. Se for a pasta pública, por sua vez, "Manter por usuário Leitura / informação não lida", a equipe poderá dizer quando uma mensagem já foi lida por outra pessoa.

Os clientes gostam, eles obtêm um endereço fácil de lembrar e suas mensagens não são perdidas! (essa é a grande coisa que eu acho)

Os gerentes gostam, eles podem ficar de olho em itens abertos, pesar nas coisas e geralmente ser "Gerentes" ..;)

    
por 26.05.2010 / 08:06
0

Acho que você pode descobrir que uma solução menos técnica atende às suas necessidades.

Conceda permissão para acessar a caixa de correio de 4 dias para a pessoa para a qual você teria encaminhado o e-mail.

Você pode configurar a conta do usuário para enviar respostas em nome próprio, em nome de ou enviado como um participante de 4 dias.

Claro, você ainda precisa garantir que o outro membro da equipe verifique a caixa de correio, o que pode ser um problema se isso for relacionado a vendas.

Ou você pode usar o Out of Office para encaminhar o e-mail para o funcionário apropriado. Seu 4 dayer poderia então apenas ligar fora do escritório toda quinta-feira. Ela será solicitada a desligá-lo quando fizer o login novamente. Assim que o Ausência do Escritório for configurado, ele terá a mesma configuração toda vez que abrir o Outlook.

Mais uma vez, é necessário que alguém execute uma ação manual, mas se ela for boa, alternar o Fora do Escritório toda quinta-feira antes de sair não é difícil de lembrar (e você pode definir uma Tarefa com um lembrete no Outlook para 4:30 da tarde toda quinta-feira).

Também pode ser mais fácil alternar o script para Fora do Escritório, com as regras já configuradas para o usuário.

    
por 27.05.2010 / 12:25