Exchange Online Message Rate Grenzen
Große Postfächer in der Cloud verführen natürlich dazu, diese Postfächer auch für automatische Prozesse zu nutzen. Allerdings sollten Sie die Grenzen kennen, die Microsoft für Exchange Online durchsetzt.
Beachten Sie dazu auch die Seite High Volume Email mit Exchange
Konfigurierte Limits
Ein Blick in die Microsoft Dokumente ist daher angebracht. Genau genommen sind diese Beschreibungen ja Bestandteil des Vertrags und sollten ihnen schon vor dem Kauf der Office 365 Lizenzen bekannt gewesen sein. Auf der anderen Seite weiß ich natürlich auch, dass kaum jemand so tief in die Beschreibungen schaut. Die Grenzen sind auch so gewählt, dass ein durchschnittlicher Anwender diese nie erreichen wird. Aber ich spreche hier ja nicht von Anwendern
- Exchange Online Service Description
https://docs.microsoft.com/de-de/office365/servicedescriptions/exchange-online-service-description/exchange-online-service-description
Die Seite beschreibt umfangreich die Dienste, die in Exchange Online so alles enthalten sind, z.B. dass auch ein Zugriff per POP3/IMAP4 möglich ist und viele andere technische Aspekte. Noch wichtiger finde ich aber die Daten auf der folgenden Seite:
- Exchange Online Limits
https://docs.microsoft.com/de-de/office365/servicedescriptions/exchange-online-service-description/exchange-online-limits
Hier werden die Grenzwerte beschrieben wie z.B. Postfachgrößen der verschiedenen Pläne. Beide Seiten sind daher wichtig um auch Exchange Online Pläne zu vergleichen. Die meisten Grenzwerte sind bekannt und werden auch beworben wie z.B. die Postfachgrößen F1=2G, E1=50GB, E3= 100GB/Unlimited). Andere Werte sind aber nicht so prominent im Marketing aber betreffen diverse Dienste, auf die ich später noch eingehe. Exemplarisch betrachte ich die Sende- und Empfangslimits
- Exchange Online limits - Receiving and
sending limits
https://docs.microsoft.com/de-de/office365/servicedescriptions/exchange-online-service-description/exchange-online-limits#receiving-and-sending-limits - Upcoming changes to mailbox receiving
limits: Hot Recipients Throttling
https://techcommunity.microsoft.com/t5/exchange-team-blog/upcoming-changes-to-mailbox-receiving-limits-hot-recipients/ba-p/2155862
Eingehende Mails
Exchange Online limitiert die Anzahl der Mail, die ein Empfänger pro Stunde erhalten kann. Wird das Limit erreicht, dann lehnt Exchange jede weitere Mail auf dem SMTP-Level ab. Der absendende Server wird also nicht gebeten es etwas später noch mal zu versuchen sondern der Sender bekommt einen NDR. Dies kann speziell bei automatisch versendeten Mails ein Problem sein, wenn diese NDRs nicht verarbeitet werden.
Die Message hat dann den Wortlaut (Auszug)
554 5.2.122 The recipient has exceeded their limit for the number of messages they can receive per hour. For more information go to http://go.microsoft.com/fwlink/?LinkId=526653. (S71732)
Versenden von Mails
Auch in beim Versand unterliegen authentifizierte Sender verschiedenen Beschränkungen. Hier sind die Limits sogar noch niedriger.
Die meisten Menschen werden sicher nicht die Rate von 30 Mails/Minute erreichen, es sei denn es ist ein Serienbrief mit Word zu Weihnachten, der viele einzelne individualisierte Mails versendet. Hier wird dann Outlook die Mails langsam in Exchange einfüttern.
Leider habe ich bislang noch nichts gefunden, solche Limits bei einer On-Premises Installation umzusetzen. Anscheinend gibt es diese Logik nur im Exchange Online Protection Stack.
Auch andere Dienste haben solche Limits.
- Gmail
https://support.google.com/a/thread/10476034?hl=en
Gmails posted rate limits are 60 messages/minute, 300 message/5 minutes. - Yahoo
https://help.smallbusiness.yahoo.net/s/article/SLN17518
500 Empfänger/Tag, max 100 Messages/Tag - Yahoo SMTP Sending Limits
https://help.smallbusiness.yahoo.net/s/article/SLN17655 - IONOS
https://www.ionos.com/help/email/general-topics/what-are-the-mass-mailing-limits/ - Exchange Online und Massenmail - Überlegungen zum Versand von Massenmails mit Exchange Online
Migration von Mails
Ein drittes Limit kann Sie bei Migrationen per EWS von anderen Mailsystem treffen.
Dieses Limit trifft meines wissens nicht zu, wenn Sie Mails mit einem RemoteMoveRequest und dem MRSProxy übertragen.
Auch wenn auf dem Transport ein Limits von 150 MB eingestellt ist, haben die Exchange Online Postfächer ein geringeres Limits von ca. 36 MB pro Mail. Diese Größe bezieht sich auf die komplette Mail mit Header, Body, Anlage und Base64-Codiert. Die maximale Größe einer Mail mit Anlagen liegt daher eher um die 25MB. Microsoft spricht von ca. 33% Mehrverbrauch durch die BASE64-Codierug.
Mit der Exchange Online PowerShell ist dies schnell zu prüfen :
PS C:\> Connect-ExchangeONline PS C:\> Get-Mailbox |ft displayname,MaxReceiveSize DisplayName MaxReceiveSize ----------- -------------- Discovery Search Mailbox 100 MB (104,857,600 bytes) Frank Carius 36 MB (37,748,736 bytes) Frank Carius DEV 36 MB (37,748,736 bytes) User1 e 36 MB (37,748,736 bytes) Raum1 36 MB (37,748,736 bytes) Shared1 36 MB (37,748,736 bytes)
Die Werte für reguläre Postfächer aber auch Räume, Ressourcen und gemeinsam genutzte Postfächer sind gleich und können Sie für bestehende Postfächer sehr einfach ändern:
PS C:\> Get-Mailbox | Set-Mailbox -MaxReceiveSize 150MB
In Exchange Online ist das Limit bei 150MB (Stand Dez 2023). Die Angabe eines höheren Werts oder gar "unlimited" wird mit einem Fehler quittiert:
PS C:\> Set-Mailbox "Frank Carius" -MaxReceiveSize unlimited Set-Mailbox: |System.InvalidOperationException|Fehler bei Vorgang für Postfach "frank.carius", da es außerhalb des Schreibbereichs für den aktuellen Benutzer liegt. Der Wert der Eigenschaft "MaxReceiveSize" kann den Grenzwert von 150 MB nicht überschreiten.
Für neue Postfächer gilt aber wieder der alte Standard von 36MB, solange sie den "Mailboxplan" nicht ändert. Ist geht aber auch recht einfach für den "Default Mailboxplan" ändern.
PS C:\> Get-MailboxPlan -Filter {isdefault -eq $true} | Set-MailboxPlan -MaxReceiveSize 150MB
Es kann sein, dass ihr Tenant mehrere Mailboxpläne hat, da diese je Lizenz angelegt werden, d.h. Ein Benutzer mit einem Kiosk/F3-Plan hat eine andere Einstellung als ein Benutzer mit E1 (Exchange Plan1) oder E3/E5 ยด(enthält Exchange Plan 2).
Passen Sie ihre Einstellungen entsprechend an, dass auch alle neuen Postfächer das gewünschte Limit erhalten.
Es ist immer ratsam, alle Postfächer nach einem gleichen Schema zu konfigurieren, damit ein spätere Fehlersuche schneller erfolgen kann.
- Exchange Mailbox Pläne
- Postfachpläne in Exchange Online
https://learn.microsoft.com/de-de/exchange/recipients-in-exchange-online/manage-user-mailboxes/mailbox-plans - Exchange Online-Begrenzungen - Nachrichtengrenzwerte
https://learn.microsoft.com/de-de/office365/servicedescriptions/exchange-online-service-description/exchange-online-limits#message-limits-1 - Set-Mailbox - MaxReceiveSize
https://learn.microsoft.com/de-de/powershell/module/exchange/set-mailbox?view=exchange-ps#-maxreceivesize
Benachrichtigung
Es ist gar nicht so einfach, diese Grenzen als "normaler Benutzer" zu überschreiten. Aber wenn Sie es schaffen, dann bekommen Sie als Postfach-Besitzer eine Nachricht:
Dies ist die Meldung, wenn eine Sender-Empfänger-Paarung über die Grenze hinausgeht:
Die 33% sind natürlich einfach zu erreichen, wenn ein Admin-Postfach sowieso ganz wenige Mails bekommt und dann ein Skript z.B. viele Meldungen sendet. Die anderen Grenzwerte sind da schon deutlich schwerer im Regelbetrieb zu erreichen.
- Exchange Online limits
https://docs.microsoft.com/en-us/office365/servicedescriptions/exchange-online-service-description/exchange-online-limits#receiving-limits
Betroffene Dienste
Abseits der normalen Postfächer ist Exchange aber auch durchaus Informationsdrehscheibe für jede Art von Nachrichten. Ohne die Grenzen einer lokalen Installation funktioniert das auch aber mit Exchange Online können Sie sich schon mal umschauen, welche Prozesse nach einer Migration beeinträchtigt sein könnten. Hier ein paar Beispiele:
Postfach | Beschreibung |
---|---|
Journalpostfach |
Exchange On-Prem kann z.B. über ein Transportjournal oder Datenbankjournal eine revisionsfeste Kopie jeder Mail in ein Postfach ablegen. Archivprodukte sollten das Postfach natürlich zeitnah leeren. In Exchange Online ist ein solcher "Missbrauch" eines Postfachs nicht erlaubt aber wird auch nicht verhindern. Aber mit den Message-Rate Limits wird es auch nicht funktionieren. Da muss Microsoft gar nicht erst etwas untersagen. Exchange
Online doesn't support
delivering journal reports
to an Exchange Online
mailbox. You must specify
the email address of an On-Premises
archiving system or a
third-party archiving
service as the journaling
mailbox. |
Support |
Auch eine zentrale Support-Adresse mit einem Postfach oder einer Shared Mailbox kann an Grenzen stoßen, wenn die Firma größer ist. Auch wenn 1 Mail/Sek bei vielen Firmen reicht, könnte z.B. eine automatische Bestätigung beim Versand ein Limit sein. Das Problem ist auch existent, wenn die ein Helpdesk-System haben, was die Support-Mailbox abruft. |
DMARC-Rücklauf |
Wenn Firmen ihre Mails per SPF und DKIM qualifizieren, dann können Sie über den DMARC-Eintrag eine Mailadresse für die Report und forensischen Berichte anlegen. Wenn ein Spammer richtige umfangreich ihre Domain stören will, dann kommen hier natürlich auch einige Reports rein und könnte das Empfangslimit überschreiten. |
Benachrichtigungsversand |
Früher ist es gerne mal passiert, dass ein automatischer Prozess keine Mails mehr verwenden konnte, weil sein eigenes Postfach voll von NDRs war und Exchange irgendwann dann eben auch den Versand gestoppt hat. Aber in der Cloud sind 30 Mails per Minute zwar viel aber für eine Software zur Meldung von Störungen oder neue Aufgaben im ERP-System o.ä. schnell erreicht. |
Mailinglisten |
Mailing-Listen sind weitere Kandidaten, die mit dem Versende-Limit gestört werden können. Sie verteilen ja eine Mail eines Absenders an alle eingeschriebenen Mitglieder. |
Edifact (M2M) |
E-Mail ist nicht nur für die Kommunikation zwischen Menschen sondern wird auch zum automatischen Austausch von Daten verwendet. Edifact ist hier ein geläufiger Begriff. Aber acuh Energieversorger senden beim Wechsel eines Kunden per Mail diese Wechselbestätigung an den abgebenden Stromerzeuger |
Spam Quarantäne |
Es ist eher selten aber es gibt durchaus Spamfilter die keine eigene Quarantäne verwalten sondern die Mails an ein eigens dazu eingerichtetes Postfach senden. |
Die Liste kann nur ein Denkanstoß darstellen, welche verschiedenen Dienste hier an Grenzen kommen könnten.
Auswerten
Bei der Auswertung müssen Sie einmal die Analyse der Mails vor der Einführung von Office 365 betrachten als auch das Erkennen im Betrieb mit Office 365
- Vorab-Analyse
Über das Message-Tracking können Sie schon heute relativ einfach ermitteln, wer Mails wohin sendet. Allerdings habe ich noch kein "fertiges Skript" erstellt, das genau auf unser Ziel ausgerichtet sind und allein die Mails pro Mailadresse und Zeiteinheit ermitteln. Aber es gibt einige Skripte im Internet, auf die ich verlinke - Office 365 Betrieb
Hier könnten Sie sich erst einmal stumm stellen und darauf warten, dass ein Anwender sich meldet. Das ist nur unschön, wenn gar kein Anwender involviert ist sondern ein Skript arbeitet und der Programmierer den Fehler nicht abgefangen hat. Bei der Überschreitung der Limits erstellt aber Exchange Online auf jeden Fall einen NDR, den Sie im Message-Tracking erfassen können.
Es ist ehe eine gute Idee, die NDRs regelmäßig zu prüfen, denn in einer idealen Umgebung gibt es keine NDRs, es sei denn Anwender vertippen sich manuell bei internen Empfängern.
- Viewing
total incoming/outgoing email statistics
https://blog.dargel.at/2012/01/26/viewing-total-incomingoutgoing-email-statistics/ - PowerShell: Generate Email Statistics (sent,
received, by user and organisation)
https://gallery.technet.microsoft.com/office/PowerShell-Generate-Email-da50c582 - Calculate Daily Email Traffic using
Message Tracking Logs and Log Parser
https://practical365.com/exchange-server/daily-email-traffic-message-tracking-log-parser/
Lösungen
Wenn ein Exchange Online Postfach nicht als Empfänger und Sender in diesen Fällen genutzt werden kann, dann bleibt wohl oder übel nur der Betrieb eines eigenen SMTP-Service, der die Mails annimmt und versendet. Da der MX-Record einer Domäne aber nicht nach Empfängern unterscheiden kann, müssen Sie eine andere Domäne nutzen.
Die meisten Firmen nutzen dann Subdomains, die auf den Dienst ausgerichtet sind, z.B. monitoring@nagios.example.com oder info@newsletter.example.com". Durch diesen Tick können Sie nun diese Domains per MX-Record zu einem anderen Mailsystem leiten, welche Sie selbst kontrollieren und Limits setzen können. Allerdings müssen Sie dann natürlich auch einen eigenen Server hierfür betreiben oder die Dienstleistung bei einem anderen Hoster einkaufen.
Der Betrieb eines eigenen Mailservers in Azure ist nicht einfach, da Microsoft per Default keine ausgehenden Verbindungen auf Port 25 zulässt. Schließlich möchte Microsoft nicht, dass die IP-Adressen von Azure in Blocklisten u.a. auftauchen.
Ein anderer Weg wäre eine Weiterleitung einer Mailadresse anstatt eines Postfachs über einen MailContact oder MailUser. Wenn Sie die Beschreibung wörtlich nehmen, dann beziehen sich die Grenzwerte auf Postfächer und authentifizierte Benutzer. Aber nur weil Weiterleitungen nicht explizit beschrieben sind, bedeutet das nicht, dass diese nicht ähnlichen Grenzen unterliegen. Den Versand von vielen Mails ins Internet können Sie natürlich an Exchange Online vorbei über einen anderen Versand-Dienstleister leiten.
Ich konnte noch nicht testen, ob Weiterleitungen unter die Drosselung fallen und Mails im Hybrid-Umfeld ebenfalls gedrosselt werden.
On-Premises
Office 365 hat entsprechenden eingerichtet und auch dokumentiert. Vielleicht ist das ein guter Moment über eine ähnliche Regelung für ihre On-Premises Server nachzudenken. Über Throttling Policies gibt es Möglichkeiten hier etwas einzugreifen.
The Microsoft Exchange Throttling service tracks resource
settings for specific uses and caches the information in
memory. Mail flow throttling settings are also known as a
budget. Restarting the Microsoft Exchange Throttling service
resets the mail flow throttling budgets.
Quelle:
https://docs.microsoft.com/de-de/exchange/mail-flow/message-rate-limits?view=exchserver-2019#message-throttling-on-receive-connectors
Allerdings ist das nicht mit Exchange Online vergleichbar. Hier scheint das System pro Empfänger einen Eintrag in einer Datenbank zu pflegen und alle Transport-Rollen fragen wohl bei jeder Mail kurz ab, ob das Budget dies noch erlaubt. Bei Exchange On-Premises erfolgt dies pro Server, um hier eine Überlastung zu vermeiden. Es gibt vielleicht mit dem Parameter "MesssageRateLimit" einen Wert, der in die Richtung geht:
-MessageRateLimit
The MessageRateLimit parameter specifies the number of
messages per minute that can be submitted to transport by
POP3 or IMAP4 clients that use SMTP.
Quelle:
https://docs.microsoft.com/en-us/powershell/module/exchange/server-health-and-performance/New-ThrottlingPolicy
Das dürfte sich aber nur auf authentifizierte Benutzer beim Versand per SMTP beziehen aber nicht auf eingehende Verbindungen.
Wenn Sie mit "Get-ThrottlingPolicy" sich die Werte einmal anzeigen lassen, dann finden Sie hier nicht direkte solche Counter für Mails/Zeiteinheit/Richtung.
[PS] C:\>Get-ThrottlingPolicy -ThrottlingPolicyScope global |fl ThrottlingPolicyScope : Global IsServiceAccount : False AnonymousMaxConcurrency : 1 AnonymousMaxBurst : 120000 AnonymousRechargeRate : 420000 AnonymousCutoffBalance : 720000 AnonymousCostThreshold : BookingSelfServiceMaxConcurrency : 10 BookingSelfServiceMaxBurst : 500000 BookingSelfServiceRechargeRate : 1800000 BookingSelfServiceCutoffBalance : 3000000 ConsensusMaxConcurrency : 10 ConsensusMaxBurst : 500000 ConsensusRechargeRate : 1800000 ConsensusCutoffBalance : 3000000 SchedulesMaxConcurrency : 5 SchedulesMaxBurst : 500000 SchedulesRechargeRate : 1800000 SchedulesCutoffBalance : 3000000 EasMaxConcurrency : 10 EasMaxBurst : 480000 EasRechargeRate : 1800000 EasCutoffBalance : 600000 EasMaxDevices : 100 EasMaxDeviceDeletesPerMonth : Unlimited EasMaxInactivityForDeviceCleanup : Unlimited EwsCostThreshold : 50 EwsMaxConcurrency : 27 EwsMaxBurst : 300000 EwsRechargeRate : 1800000 EwsCutoffBalance : 0 EwsMaxSubscriptions : 5000 ImapMaxConcurrency : Unlimited ImapMaxBurst : 3600000 ImapRechargeRate : 600000 ImapCutoffBalance : Unlimited OutlookServiceMaxConcurrency : 27 OutlookServiceMaxBurst : 300000 OutlookServiceRechargeRate : 900000 OutlookServiceCutoffBalance : 3000000 OutlookServiceMaxSubscriptions : 5000 OutlookServiceMaxSocketConnectionsPerDevice : 9 OutlookServiceMaxSocketConnectionsPerUser : 12 OwaMaxConcurrency : 20 OwaMaxBurst : 480000 OwaRechargeRate : 1800000 OwaCutoffBalance : 0 OwaVoiceMaxConcurrency : 3 OwaVoiceMaxBurst : 75000 OwaVoiceRechargeRate : 375000 OwaVoiceCutoffBalance : 525000 PopMaxConcurrency : 20 PopMaxBurst : 3600000 PopRechargeRate : 600000 PopCutoffBalance : Unlimited PowerShellMaxConcurrency : 18 PowerShellMaxBurst : Unlimited PowerShellRechargeRate : Unlimited PowerShellCutoffBalance : Unlimited PowerShellMaxTenantConcurrency : Unlimited PowerShellMaxOperations : Unlimited PowerShellMaxCmdletsTimePeriod : Unlimited ExchangeMaxCmdlets : Unlimited PowerShellMaxCmdletQueueDepth : Unlimited PowerShellMaxDestructiveCmdlets : Unlimited PowerShellMaxDestructiveCmdletsTimePeriod : Unlimited PowerShellMaxCmdlets : Unlimited PowerShellMaxRunspaces : Unlimited PowerShellMaxTenantRunspaces : Unlimited PowerShellMaxRunspacesTimePeriod : Unlimited PswsMaxConcurrency : 18 PswsMaxRequest : Unlimited PswsMaxRequestTimePeriod : Unlimited RcaMaxConcurrency : 40 RcaMaxBurst : 150000 RcaRechargeRate : 900000 RcaCutoffBalance : Unlimited CpaMaxConcurrency : 20 CpaMaxBurst : Unlimited CpaRechargeRate : Unlimited CpaCutoffBalance : Unlimited RcaSharedMaxConcurrency : Unlimited RcaSharedMaxBurst : 600000 RcaSharedRechargeRate : 3600000 RcaSharedCutoffBalance : Unlimited MessageRateLimit : Unlimited RecipientRateLimit : Unlimited ForwardeeLimit : Unlimited DiscoveryMaxConcurrency : 2 DiscoveryMaxMailboxes : 5000 DiscoveryMaxKeywords : 500 DiscoveryMaxPreviewSearchMailboxes : 5000 DiscoveryMaxStatsSearchMailboxes : 100 DiscoveryPreviewSearchResultsPageSize : 200 DiscoveryMaxKeywordsPerPage : 25 DiscoveryMaxRefinerResults : 10 DiscoveryMaxSearchQueueDepth : 32 DiscoverySearchTimeoutPeriod : 10 PushNotificationMaxConcurrency : 20 PushNotificationMaxBurst : Unlimited PushNotificationRechargeRate : Unlimited PushNotificationCutoffBalance : Unlimited PushNotificationMaxBurstPerDevice : 10 PushNotificationRechargeRatePerDevice : 6 PushNotificationSamplingPeriodPerDevice : 600000 EncryptionSenderMaxConcurrency : 200 EncryptionSenderMaxBurst : 4800000 EncryptionSenderRechargeRate : 18000000 EncryptionSenderCutoffBalance : Unlimited EncryptionRecipientMaxConcurrency : 20 EncryptionRecipientMaxBurst : 480000 EncryptionRecipientRechargeRate : 1800000 EncryptionRecipientCutoffBalance : Unlimited ComplianceMaxExpansionDGRecipients : 10000 ComplianceMaxExpansionNestedDGs : 25 SuiteMaxConcurrency : 20 SuiteMaxBurst : 480000 SuiteRechargeRate : 1800000 SuiteCutoffBalance : Unlimited IsLegacyDefault : False Diagnostics : AdminDisplayName : ExchangeVersion : 0.20 (15.0.0.0) Id : GlobalThrottlingPolicy_<guid>
Ich habe diese globalen Werte nie verändert. Wenn für Dienstkonten oder andere Sonderkonten eine abweichende Konfiguration erforderlich war, dann habe ich eine neue Policy angelegt, die Werte angepasst und der Mailbox zugewiesen.
- User workload management in Exchange
Server
https://docs.microsoft.com/de-de/Exchange/server-health/workload-management?view=exchserver-2019 - Message size limits in Exchange 2016
https://docs.microsoft.com/en-us/Exchange/mail-flow/message-size-limits - Message rate limits and throttling
https://docs.microsoft.com/de-de/exchange/mail-flow/message-rate-limits - User workload management in Exchange 2016
https://docs.microsoft.com/de-de/exchange/server-health/workload-management - Change User throttling settings for specific Users
https://technet.microsoft.com/library/c5f834d6-189d-485e-9800-5e0066815ecf.aspx - Change User throttling settings for all Users in your organization
https://technet.microsoft.com/library/c45cacfc-768d-4605-9bb0-53e30273fe4d.aspx - Set-ThrottlingPolicy
https://docs.microsoft.com/en-us/powershell/module/exchange/server-health-and-performance/set-throttlingpolicy?view=exchange-ps
Die Thottling-Policies können z.B. limitieren, wie schnell Mails pro Zeit per SMTP eingeliefert werden können - New-ThrottlingPolicy
https://docs.microsoft.com/en-us/powershell/module/exchange/server-health-and-performance/New-ThrottlingPolicy
Weitere Links
- MessageRateReport
- MsgTrackSum
- High Volume Email mit Exchange
- Exchange Online und Massenmail - Überlegungen zum Versand von Massenmails mit Exchange Online
- Exchange Online Limits
https://docs.microsoft.com/de-de/office365/servicedescriptions/exchange-online-service-description/exchange-online-limits - Exchange Online Service Description
https://docs.microsoft.com/de-de/office365/servicedescriptions/exchange-online-service-description/exchange-online-service-description - Avoid getting throttled or blocked in
SharePoint Online
https://docs.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online