Outlook 2003 的脚本转发

Outlook 2003 的脚本转发

我们销售部门的一名员工已经开始每周工作 4 天(准备退休),因此每周四下午她的电子邮件需要转发给另一个用户,并且每周五下午需要将其重新设置。

我正在使用下面的 VBS 脚本来执行此操作,通过任务计划程序运行。虽然脚本似乎可以完成其工作,但根据我查看用户的 Exchange 设置时看到的内容,Exchange 并不总是能识别出设置已更改。例如,上周四转发已启用并正常工作。周五,脚本清除了转发,但 Exchange 整个周末都在继续转发消息。

我发现,只需在 ADUC 中打开和关闭用户属性,即可强制 Exchange 遵守更改的设置。当然,我不想这样做。有没有一种非手动方式可以让 Exchange 读取并遵守设置?

脚本(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

编辑:

如果有人有其他方法可以实现相同的目标(预定的转发和取消),我很乐意听取建议。当然,这种需求以前也曾遇到过并得到满足。

更新:

出于我甚至不会去猜测的原因,脚本系统在不做任何更改的情况下已经几乎完全可靠地运行了一段时间。在过去的 3 或 4 个月里,它只失败过一次。

答案1

简单地设置一个共享的“销售”邮箱,让所有需要的销售机器人使用它,不是更简单(也更友好)吗?它永远不会像简单的重定向那样快,但那时就不需要编写脚本或任何东西了。(我们在这里使用了很多,允许用户更改角色、升职、辞职等,而不必担心重定向或通知客户新地址等)。

另一种选择(在 Exchange 中)是公共文件夹,只需为所有需要访问的人创建并设置权限(使用 Outlook),然后分配所需的电子邮件地址(在系统管理器中,默认为“[电子邮件保护]"),那么所有邮件都会转到那里。具有类似/熟悉的委派控制/权限等。如果特定用户需要访问共享日历或邮箱,他们可以将其设置为“收藏夹”。

这样,用户可以“抓取”消息,将它们移动到自己的邮箱中,或者在完成后删除它们等等。此外,当你看到以下内容时,你会觉得很专业:Joe Bloggs 代表[电子邮件保护]。如果是公共文件夹,请关闭“维护每个用户的已读/未读信息...”,然后工作人员就可以知道某条消息是否已被其他人阅读。

客户喜欢它,他们得到了一个容易记住的地址,而且他们的信息不会丢失!(我认为这是最重要的)

经理们喜欢它,他们可以密切关注未结项目,权衡利弊,总体而言就是“经理”...... ;-)

答案2

我想您可能会发现技术含量较低的解决方案可以满足您的需求。

授予您要将邮件转发给的人员访问 4 天周邮箱的权限。

您可以设置用户帐户以自己的名义、代表发送回复,或者以 4 天周为单位发送。

当然,您仍然需要确保其他工作人员检查邮箱,如果这与销售有关,这可能是一个问题。

或者,您可以直接使用 Out of Office 将邮件转发给相应的员工。然后,您的 4 天员工就可以在每周四打开 Out of Office。她重新登录时会收到关闭提示。一旦配置了 Out of Office,每次她打开 Outlook 时都会有相同的配置。

再次强调,这需要有人采取手动操作 - 但如果她那么厉害,那么每周四离开之前打开外出办公室功能并不难记住(并且您可以在 Outlook 中设置一个任务并在每周四下午 4:30 提醒她)。

无论已经为用户配置了什么规则,编写外出时切换脚本可能都会更容易。

相关内容