मेरा समाधान यह है:
मैंने एक उपयोगकर्ता खाता बनाया है जिसमें प्रत्येक मेलबॉक्स तक पूर्ण मेलबॉक्स पहुंच है (आप सर्वर के स्तर पर इसे अनुदान दे सकते हैं)।
मैंने तब एक छोटा प्रोग्राम लिखा जो इन अनुमतियों के साथ चलता है, लेकिन इस तरह से सेट किया गया है कि प्रोग्राम को एक्सेस करने वाले उपयोगकर्ता को पासवर्ड की आवश्यकता नहीं है। यह प्रतिरूपण का उपयोग करके वेब सर्वर पर प्रोग्राम चलाने के द्वारा किया जाता है।
यह VB.NET / WebForms में है।
Web.config में:
<identity impersonate="true" userName="domain\username" password="password" />
फिर एक बहुत ही सरल ASP.NET पेज है। इस aspx में, मेरे पास यह है:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="SetOOF._Default" AspCompat="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<p>
Username
<asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
<asp:Button ID="btnGetUser" runat="server" Text="Select" />
</p>
<p>
<asp:Label ID="lblUserName" runat="server"></asp:Label>
</p>
<p> <asp:CheckBox ID="chkOofEnabled" runat="server" /> Out of Office on/off
</p>
</div>
<p>
<asp:TextBox ID="txtOofText" runat="server" Height="217px" Width="479px"
TextMode="MultiLine"></asp:TextBox>
</p>
<p>
<asp:Button ID="btnUpdateUser" runat="server" Text="Update User" />
</p>
</form>
</body>
</html>
और .vb फ़ाइल में, मेरे पास है
Imports MAPI
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub btnGetUser_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnGetUser.Click
Dim ses As MAPI.Session
ses = New MAPI.Session
ses = CreateObject("MAPI.Session")
ses.Logon(ShowDialog:=False, NoMail:=True, ProfileInfo:="mailserver" & vbLf & txtUsername.Text)
Dim user As MAPI.AddressEntry = ses.CurrentUser
lblUserName.Text = user.Name
chkOofEnabled.Checked = ses.OutOfOffice
txtOofText.Text = ses.OutOfOfficeText
ses.Logoff()
End Sub
Protected Sub btnUpdateUser_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUpdateUser.Click
Dim ses As New MAPI.Session
ses = CreateObject("MAPI.Session")
ses.Logon(ShowDialog:=False, NoMail:=True, ProfileInfo:="mailserver" & vbLf & txtUsername.Text)
ses.OutOfOffice = chkOofEnabled.Checked
ses.OutOfOfficeText = txtOofText.Text
ses.Logoff()
End Sub
End Class
ध्यान दें कि आपके द्वारा इसे चलाने वाले वेब सर्वर पर आउटलुक स्थापित करने की आवश्यकता होगी, क्योंकि यह मेलसेवर से कनेक्ट करने के लिए MAPI का उपयोग करता है (आपको प्रोजेक्ट स्तर पर Microsoft CDO लाइब्रेरी के लिए एक संदर्भ की आवश्यकता है, जो MAPI है)। जब तक आप सभी एक एक्सचेंज ऑर्गनाइजेशन हैं, इससे कोई फर्क नहीं पड़ता कि कौन सा मेलस्वर - एक्सचेंज ऐप को सही सर्वर पर रीडायरेक्ट करेगा।
आप अपने हेल्पडेस्क और sysadmins को ऐप तक पहुंच को प्रतिबंधित करने के लिए अपने web.config के अनुभाग का उपयोग कर सकते हैं ताकि आम उपयोगकर्ता स्वयं एप्लिकेशन तक नहीं पहुंच सकें।