Exchange-2003

Outlook 2003 的腳本轉發

  • October 12, 2010

我們有一名銷售人員每週工作 4 天(準備退休),因此每個星期四下午需要將她的電子郵件轉發給另一個使用者,每個星期五下午需要將其退回。

我正在使用下面的 VBS 腳本來執行此操作,通過任務計劃程序執行。儘管該腳本似乎可以完成它的工作,但根據我在查看使用者的 Exchange 設置時看到的內容,Exchange 並不總是能辨識出設置已更改。例如,上週四轉發已啟用並且工作正常。週五,腳本清除了轉發,但 Exchange 整個週末都在繼續轉發消息。

我發現我可以強制 Exchange 遵守更改的設置,只需打開和關閉 ADUC 中的使用者屬性。當然,我不想這樣做。有沒有一種非手動方式可以讓 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 個月裡,它只失敗過一次。

簡單地設置一個共享的“銷售”郵箱不是更容易(更友好)嗎,讓所有需要的銷售機器人使用它。它永遠不會像簡單的重定向那樣快,但是不需要編寫腳本或任何東西。(我們在這裡使用了很多,允許使用者更改角色、升職、退出等,而不必擔心重定向或通知客戶新地址等)。

另一種選擇(在 Exchange 中)是公用文件夾,只需為所有需要訪問權限的人創建和設置權限(使用 Outlook),然後分配電子郵件地址

$$ es $$您需要(在系統管理器中,將預設為“Foldername@domainname.com”),然後所有郵件都將轉到那裡。具有類似/熟悉的委派控制/權限等。如果特定使用者需要訪問共享日曆或郵箱,他們可以將它們設置為“收藏夾”。 這樣,使用者可以自己“抓取”消息,將它們移動到自己的郵箱中,或者在完成後刪除它們等。此外,當您看到:Joe Bloggs on Behalf of Sales@company.com 時,看起來很專業。如果它是公用文件夾,請打開“維護每個使用者的已讀/未讀資訊..”,然後工作人員可以判斷消息何時已被其他人閱讀。

客戶喜歡它,他們得到一個容易記住的地址,而且他們的資訊不會失去!(這是我認為的大問題)

經理們喜歡它,他們可以密切關注未清項目,權衡事情,通常是“經理”.. ;-)

引用自:https://serverfault.com/questions/142449