আমার সমাধানটি হ'ল:
আমি এমন একটি ব্যবহারকারী অ্যাকাউন্ট তৈরি করেছি যাতে প্রতিটি মেইলবক্সে সম্পূর্ণ মেলবক্স অ্যাক্সেস থাকে (আপনি সার্ভারের স্তরে এটি মঞ্জুরি দিতে পারেন)।
আমি তখন একটি সামান্য প্রোগ্রাম লিখেছি যা এই অনুমতিগুলি দিয়ে চলে, তবে এমনভাবে সেট আপ করা হয়েছে যাতে প্রোগ্রামটিতে অ্যাক্সেস করা ব্যবহারকারীর পাসওয়ার্ডের প্রয়োজন হয় না। এটি ছদ্মবেশ ব্যবহার করে কোনও ওয়েব সার্ভারে প্রোগ্রামটি চালিয়ে করা হয়।
এটি ভিবি.এনইটি / ওয়েবফোর্মে রয়েছে।
ওয়েবকনফিগে:
<identity impersonate="true" userName="domain\username" password="password" />
তারপরে সত্যিই একটি সহজ এএসপি.নেট পৃষ্ঠা রয়েছে। এসপেক্সে, আমার কাছে এটি রয়েছে:
<%@ 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
নোট করুন যে আপনার এটি চালানোর জন্য ওয়েব সার্ভারে আউটলুক ইনস্টল করা দরকার, যেমন এটি মেইল সার্ভারের সাথে সংযোগ স্থাপনের জন্য এমএপিআই ব্যবহার করে (এছাড়াও আপনাকে মাইক্রোসফ্ট সিডিও লাইব্রেরিতে প্রজেক্ট পর্যায়ে একটি রেফারেন্স প্রয়োজন যা এমএপিআই)। যতক্ষণ না আপনি সকলেই একটি এক্সচেঞ্জ সংগঠন, কোনও মেইল সার্ভার - এক্সচেঞ্জ অ্যাপটিকে ডান সার্ভারে পুনর্নির্দেশ করবে it
সাধারণ ব্যবহারকারীরা নিজেরাই অ্যাপ্লিকেশনটি অ্যাক্সেস করতে না পারার জন্য আপনি আপনার হেল্পডেস্ক এবং সিস্যাডমিনগুলিতে অ্যাপ্লিকেশনটিতে অ্যাক্সেস সীমাবদ্ধ করতে আপনি আপনার ওয়েবকনফিগের বিভাগটি ব্যবহার করতে পারেন।