שירותי אינטרנט של Exchange

רישום משמש לניפוי באגים, כמו גם לאיסוף וניתוח מידע עבודה על האפליקציה. מידע זה נכתב לקובץ הנקרא יומן. קובצי יומן מכילים מידע מערכת על פעולת יישום הלקוח, למשל, פעולות משתמש או תוכנית.

במאמר זה נסקור כיצד להגדיר רישום פעילות של לקוח EWS באמצעות C# .NET.

C# .NET API לעבודה עם שירותי האינטרנט של MS Exchange

כדי לנהל את שירותי האינטרנט של MS Exchange, נשתמש ב-Aspose.Email for .NET.

זהו API רב עוצמה המאפשר גישה לשירותים שונים של MS Exchange Server בצורה חלקה. כמו כן, הוא מספק הרבה תכונות ליישום יישומי לקוח דואר אלקטרוני.

אתה יכול להוריד את ה-DLL של ה-API או להתקין אותו מ-NuGet באמצעות הפקודה הבאה.

PM> Install-Package Aspose.Email 

אפשר רישום פעילויות באמצעות קובץ App.config

אפשרות זו מתאימה ליישומים שבהם app.config היא הדרך המועדפת לשמירה על תצורת האפליקציה.

להלן השלבים לאפשר כניסה ל-EWSClient ב-C#.

  • ראשית, הוסף קובץ תצורה של יישום לפרויקט C#, אם הוא לא התווסף בעבר.
  • לאחר מכן, הוסף את התוכן הבא לקובץ התצורה.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="Aspose.Email.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
    <applicationSettings>
        <Aspose.Email.Properties.Settings>
            <setting name="EWSDiagnosticLog" serializeAs="String">
                <value>..\..\..\Log\Aspose.Email.EWS.log</value>
            </setting>
            <setting name="EWSDiagnosticLog_UseDate" serializeAs="String">
                <value>False</value>
            </setting>
        </Aspose.Email.Properties.Settings>
    </applicationSettings>
</configuration>

אנו יכולים לראות שני סעיפי הגדרות:

  • EWSDiagnosticLog - מציין את הנתיב היחסי או המוחלט לקובץ היומן.
  • EWSDiagnosticLogUseDate - מציין אם להוסיף ייצוג מחרוזת של התאריך הנוכחי לשם קובץ היומן.

אפשר רישום פעילויות באמצעות קובץ appsettings.json

אפשרות זו מועדפת עבור יישומי .NET Core.

להלן השלבים לאפשר כניסה ל-EWSClient ב-C#.

  • ראשית, הוסף קובץ תצורה של ‘appsettings.json’ לפרויקט C#, אם הוא לא התווסף בעבר. ודא שקובץ הפרויקט מכיל את השורות הבאות בקטע ItemGroup:
<Content Include="appsettings.json">
    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
  • לאחר מכן, הוסף את התוכן הבא לקובץ appsettings.json.
{
  "EWSDiagnosticLog": "ews.log",
  "EWSDiagnosticLog_UseDate": true
}

אנו יכולים לראות שני מאפיינים:

  • EWSDiagnosticLog - מציין את הנתיב היחסי או המוחלט לקובץ היומן.
  • EWSDiagnosticLogUseDate - מציין אם להוסיף ייצוג מחרוזת של התאריך הנוכחי לשם קובץ היומן.

אפשר קוד תוכנית התחברות לפעילות

אתה יכול גם לאפשר התחברות מיידית בקוד. הערה: גם אם כבר הפעלת רישום באמצעות קובצי תצורה, אפשרות זו תיושם.

להלן השלבים לאפשר כניסה ל-EWSClient ב-C#.

  • ראשית, צור EWSClient.
  • שנית, הגדר את הנתיב לקובץ היומן באמצעות המאפיין LogFileName.
  • לבסוף, הגדר את המאפיין UseDateInLogFileName אם יש צורך בכך.
using (var client = EWSClient.GetEWSClient("https://outlook.office365.com/EWS/Exchange.asmx", credentials))
{
  client.LogFileName = @"Aspose.Email.EWS.log";
  client.UseDateInLogFileName = false;
}

דוגמה למידע על קובץ יומן

להלן דוגמה לערכים של קובץ יומן כאשר מופעלת השיטה ListMessages. לפני כל ערך חדש קודמת חותמת זמן.

ניתן להבחין בין הערכים הבאים בקובץ היומן:

  1. כותרת קובץ יומן. כולל גרסת Aspose.Email, שם ושעת התחלה.
Aspose.Email for .NET [22.10.0.0] EWS Client diagnostic log

Started: 07.11.2022 13:40:16
  1. בקשת SOAP לשרת.
07.11.2022 13:40:16	<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Header>
		<ExchangeImpersonation xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
			<ConnectingSID>
				<SmtpAddress>someaddress@someorg.onmicrosoft.com</SmtpAddress>
			</ConnectingSID>
		</ExchangeImpersonation>
		<RequestServerVersion xmlns="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013" />
	</soap:Header>
	<soap:Body>
		<FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" Traversal="Shallow">
			<ItemShape>
				<BaseShape xmlns="http://schemas.microsoft.com/exchange/services/2006/types">IdOnly</BaseShape>
			</ItemShape>
			<IndexedPageItemView MaxEntriesReturned="2147483647" Offset="0" BasePoint="Beginning" />
			<ParentFolderIds>
				<DistinguishedFolderId xmlns="http://schemas.microsoft.com/exchange/services/2006/types" Id="inbox" />
			</ParentFolderIds>
		</FindItem>
	</soap:Body>
</soap:Envelope>
  1. כותרות תגובת HTTP
07.11.2022 13:40:18	Cache-Control: private
                   	Transfer-Encoding: chunked
                   	Server: Microsoft-IIS/10.0
                   	request-id: 5c777b61-e3d9-c262-fbb0-6f071d9ff68a
                   	Alt-Svc: h3=":443", h3-29=":443"
                   	X-CalculatedFETarget: CH0PR03CU015.internal.outlook.com, BL0PR02CU002.internal.outlook.com
                   	X-BackEndHttpStatus: 200, 200, 200
                   	Set-Cookie: exchangecookie=bf07039c0ee942438170c2958ca2d330; expires=Tue, 07-Nov-2023 10:40:17 GMT; path=/; secure; HttpOnly
                   	X-CalculatedBETarget: BLAPR10MB4915.namprd10.PROD.OUTLOOK.COM
                   	X-RUM-Validated: 1
                   	x-ms-appId: 3fe84e63-c57b-48eb-ab41-879415751cfd
                   	Restrict-Access-Confirm: 1
                   	x-EwsHandler: FindItem
                   	X-AspNet-Version: 4.0.30319
                   	X-BeSku: WCS6
                   	X-DiagInfo: BLAPR10MB4915
                   	X-BEServer: BLAPR10MB4915
                   	X-Proxy-RoutingCorrectness: 1
                   	X-Proxy-BackendServerStatus: 200
                   	X-FEProxyInfo: AS9PR06CA0693.EURPRD06.PROD.OUTLOOK.COM
                   	X-FEEFZInfo: DHR
                   	X-FEServer: BL0PR02CA0063, CH0PR03CA0449, AS9PR06CA0693
                   	X-FirstHopCafeEFZ: DHR
                   	X-Powered-By: ASP.NET
                   	Date: Mon, 07 Nov 2022 10:40:17 GMT
                   	Content-Type: text/xml; charset=utf-8
  1. תגובת שרת SOAP.
07.11.2022 13:40:18	<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Header>
		<ExchangeImpersonation xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
			<ConnectingSID>
				<SmtpAddress>someaddress@someorg.onmicrosoft.com</SmtpAddress>
			</ConnectingSID>
		</ExchangeImpersonation>
		<RequestServerVersion Version="Exchange2013" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
	</soap:Header>
	<soap:Body>
		<GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
			<ItemShape>
				<BaseShape xmlns="http://schemas.microsoft.com/exchange/services/2006/types">IdOnly</BaseShape>
				<AdditionalProperties xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
					<FieldURI FieldURI="item:Attachments" /><FieldURI FieldURI="item:DateTimeCreated" />
					<FieldURI FieldURI="item:DateTimeReceived" /><FieldURI FieldURI="item:DateTimeSent" />
					<FieldURI FieldURI="item:IsDraft" /><FieldURI FieldURI="item:IsFromMe" />
					<FieldURI FieldURI="item:HasAttachments" /><FieldURI FieldURI="item:IsUnmodified" />
					<FieldURI FieldURI="item:ItemClass" /><FieldURI FieldURI="item:IsSubmitted" />
					<FieldURI FieldURI="item:IsResend" /><FieldURI FieldURI="item:DisplayCc" /><FieldURI FieldURI="item:DisplayTo" />
					<FieldURI FieldURI="item:Attachments" /><FieldURI FieldURI="item:LastModifiedTime" />
					<FieldURI FieldURI="item:Size" /><FieldURI FieldURI="item:Subject" />
					<FieldURI FieldURI="item:InternetMessageHeaders" /><FieldURI FieldURI="message:IsRead" />
					<FieldURI FieldURI="message:InternetMessageId" /><FieldURI FieldURI="message:Sender" />
					<FieldURI FieldURI="message:CcRecipients" /><FieldURI FieldURI="message:ToRecipients" />
					<FieldURI FieldURI="message:BccRecipients" /><FieldURI FieldURI="message:From" />
				</AdditionalProperties>
			</ItemShape>
			<ItemIds>
				<ItemId
					Id="AAMkAGJhZjYzY2I5LTdjYWMtNGFmMC05ODI1LTA5MTAzYTgwZTc4OQBGAAAAAABdN1MC60QcSpWwPYUTPhL2BwATlR+p0q0wT6WD0+d4WJhWAAAAAAEMAAATlR+p0q0wT6WD0+d4WJhWAACp2kv8AAA="
					xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
			</ItemIds>
		</GetItem>
	</soap:Body>
</soap:Envelope>

קבל רישיון API בחינם

אתה יכול לקבל [רישיון זמני] בחינם9 לשימוש ב-Aspose.Email עבור .NET ללא מגבלות הערכה.

סיכום

במאמר זה למדת כיצד להגדיר רישום פעילות בלקוח EWS באמצעות C#. תכונה זו מאפשרת לך ניטור טוב יותר של יישום הלקוח שלך. בנוסף, אתה יכול לחקור את התיעוד כדי לקרוא עוד על Aspose.Email for .NET. כמו כן, אתה יכול לשאול את השאלות שלך דרך הפורום שלנו.

ראה גם