@rapidmx/autodiscover-plugin 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -74,6 +74,7 @@ const { Route } = RouteDecorators;
74
74
  export class MyAutodiscoverRoute extends AutodiscoverRouteMongo {
75
75
  protected readonly easUrl = "https://mail.example.com/Microsoft-Server-ActiveSync";
76
76
  protected readonly mapiUrl = "https://mail.example.com/mapi/emsmdb";
77
+ protected readonly nspiUrl = "https://mail.example.com/mapi/nspi";
77
78
  }
78
79
  ```
79
80
 
@@ -189,23 +189,23 @@ export function buildPoxSuccessXml({ emailAddress, displayName, easUrl }) {
189
189
  const displayNameElement = displayName
190
190
  ? `\n <autodiscover:DisplayName>${escapeXml(displayName)}</autodiscover:DisplayName>`
191
191
  : "";
192
- return `<?xml version="1.0" encoding="utf-8"?>
193
- <Autodiscover xmlns:autodiscover="https://schemas.microsoft.com/exchange/autodiscover/mobilesync/responseschema/2006">
194
- <autodiscover:Response>
195
- <autodiscover:Culture>en:us</autodiscover:Culture>
196
- <autodiscover:User>${displayNameElement}
197
- <autodiscover:EMailAddress>${email}</autodiscover:EMailAddress>
198
- </autodiscover:User>
199
- <autodiscover:Action>
200
- <autodiscover:Settings>
201
- <autodiscover:Server>
202
- <autodiscover:Type>MobileSync</autodiscover:Type>
203
- <autodiscover:Url>${url}</autodiscover:Url>
204
- <autodiscover:Name>${url}</autodiscover:Name>
205
- </autodiscover:Server>
206
- </autodiscover:Settings>
207
- </autodiscover:Action>
208
- </autodiscover:Response>
192
+ return `<?xml version="1.0" encoding="utf-8"?>
193
+ <Autodiscover xmlns:autodiscover="https://schemas.microsoft.com/exchange/autodiscover/mobilesync/responseschema/2006">
194
+ <autodiscover:Response>
195
+ <autodiscover:Culture>en:us</autodiscover:Culture>
196
+ <autodiscover:User>${displayNameElement}
197
+ <autodiscover:EMailAddress>${email}</autodiscover:EMailAddress>
198
+ </autodiscover:User>
199
+ <autodiscover:Action>
200
+ <autodiscover:Settings>
201
+ <autodiscover:Server>
202
+ <autodiscover:Type>MobileSync</autodiscover:Type>
203
+ <autodiscover:Url>${url}</autodiscover:Url>
204
+ <autodiscover:Name>${url}</autodiscover:Name>
205
+ </autodiscover:Server>
206
+ </autodiscover:Settings>
207
+ </autodiscover:Action>
208
+ </autodiscover:Response>
209
209
  </Autodiscover>`;
210
210
  }
211
211
  /**
@@ -223,39 +223,49 @@ export function buildPoxSuccessXml({ emailAddress, displayName, easUrl }) {
223
223
  * request always gets the mapiHttp form - the real `X-MapiHttpCapability` request-header negotiation a full
224
224
  * implementation would consult to choose between EXCH/mapiHttp is not implemented, a documented gap.
225
225
  * `MailStore.InternalUrl`/`ExternalUrl` are both set to the same `mapiUrl`, since this library serves one URL
226
- * per deployment with no separate internal/external network split.
226
+ * per deployment with no separate internal/external network split. The `mapiHttp` `Protocol` also carries an `AddressBook`
227
+ * block (the `nspi` endpoint, `nspiUrl`) in the same shape: a MAPI/HTTP client uses the address book as well as the mail
228
+ * store, and Outlook stops right after the Autodiscover response - "Something went wrong and Outlook couldn't set up your
229
+ * account", with no request to either endpoint - when it is missing.
227
230
  *
228
231
  * `LegacyDN`/`DeploymentId` are schema-required fields this library has no real backing value for (no X.500
229
232
  * DN resolution, no multi-tenant deployment identity) - both are synthesized placeholders. Real Outlook does
230
233
  * not validate their exact content for MAPI/HTTP connectivity; they matter for classic RPC/TCP MAPI
231
234
  * free-busy/permissions lookups this library doesn't implement anyway.
232
235
  */
233
- export function buildOutlookSuccessXml({ emailAddress, displayName, mapiUrl }) {
236
+ export function buildOutlookSuccessXml({ emailAddress, displayName, mapiUrl, nspiUrl }) {
234
237
  const email = escapeXml(emailAddress);
235
238
  const url = escapeXml(mapiUrl);
239
+ const addressBook = nspiUrl
240
+ ? `
241
+ <AddressBook>
242
+ <InternalUrl>${escapeXml(nspiUrl)}</InternalUrl>
243
+ <ExternalUrl>${escapeXml(nspiUrl)}</ExternalUrl>
244
+ </AddressBook>`
245
+ : "";
236
246
  const name = escapeXml(displayName ?? emailAddress);
237
247
  const legacyDn = escapeXml(`/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=${emailAddress}`);
238
- return `<?xml version="1.0" encoding="utf-8"?>
239
- <Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
240
- <Response xmlns="${OUTLOOK_RESPONSE_SCHEMA}">
241
- <User>
242
- <DisplayName>${name}</DisplayName>
243
- <LegacyDN>${legacyDn}</LegacyDN>
244
- <AutoDiscoverSMTPAddress>${email}</AutoDiscoverSMTPAddress>
245
- <DeploymentId>00000000-0000-0000-0000-000000000000</DeploymentId>
246
- </User>
247
- <Account>
248
- <AccountType>email</AccountType>
249
- <Action>settings</Action>
250
- <MicrosoftOnline>False</MicrosoftOnline>
251
- <Protocol Type="mapiHttp" Version="1">
252
- <MailStore>
253
- <InternalUrl>${url}</InternalUrl>
254
- <ExternalUrl>${url}</ExternalUrl>
255
- </MailStore>
256
- </Protocol>
257
- </Account>
258
- </Response>
248
+ return `<?xml version="1.0" encoding="utf-8"?>
249
+ <Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
250
+ <Response xmlns="${OUTLOOK_RESPONSE_SCHEMA}">
251
+ <User>
252
+ <DisplayName>${name}</DisplayName>
253
+ <LegacyDN>${legacyDn}</LegacyDN>
254
+ <AutoDiscoverSMTPAddress>${email}</AutoDiscoverSMTPAddress>
255
+ <DeploymentId>00000000-0000-0000-0000-000000000000</DeploymentId>
256
+ </User>
257
+ <Account>
258
+ <AccountType>email</AccountType>
259
+ <Action>settings</Action>
260
+ <MicrosoftOnline>False</MicrosoftOnline>
261
+ <Protocol Type="mapiHttp" Version="1">
262
+ <MailStore>
263
+ <InternalUrl>${url}</InternalUrl>
264
+ <ExternalUrl>${url}</ExternalUrl>
265
+ </MailStore>${addressBook}
266
+ </Protocol>
267
+ </Account>
268
+ </Response>
259
269
  </Autodiscover>`;
260
270
  }
261
271
  //# sourceMappingURL=AutodiscoverXml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutodiscoverXml.js","sourceRoot":"","sources":["../../src/AutodiscoverXml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutodiscoverXml.js","sourceRoot":"","sources":["../../src/AutodiscoverXml.ts"],"names":[],"mappings":"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"}
@@ -97,6 +97,10 @@ export class BaseAutodiscoverRoute {
97
97
  get mapiUrl() {
98
98
  return this.endpointUrl(MAPI_PLUGIN, "/mapi/emsmdb");
99
99
  }
100
+ /** The MAPI/HTTP `nspi` (address book) endpoint URL, reported beside `mapiUrl`: available exactly when it is. */
101
+ get nspiUrl() {
102
+ return this.endpointUrl(MAPI_PLUGIN, "/mapi/nspi");
103
+ }
100
104
  /**
101
105
  * Builds the query value used to match `Mailbox.aliasAddresses` against the given address. See
102
106
  * `BaseMailIngestRoute.aliasQueryValue()`'s identical doc comment - same Mongo-array vs.
@@ -217,7 +221,7 @@ export class BaseAutodiscoverRoute {
217
221
  // The display name is never disclosed to this anonymous caller (see the class doc): the address they
218
222
  // already supplied stands in for it, which keeps the Outlook schema's required `DisplayName` populated.
219
223
  const xml = outlook
220
- ? buildOutlookSuccessXml({ emailAddress: email, displayName: email, mapiUrl: url })
224
+ ? buildOutlookSuccessXml({ emailAddress: email, displayName: email, mapiUrl: url, nspiUrl: this.nspiUrl })
221
225
  : buildPoxSuccessXml({ emailAddress: email, displayName: email, easUrl: url });
222
226
  // `text/xml`, not `application/xml`: real Exchange POX Autodiscover responses (per Microsoft's own
223
227
  // "Autodiscover for Exchange ActiveSync developers" example) use `text/xml`, and some older/strict
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAutodiscoverRoute.js","sourceRoot":"","sources":["../../src/BaseAutodiscoverRoute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseAutodiscoverRoute.js","sourceRoot":"","sources":["../../src/BaseAutodiscoverRoute.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,11 @@ export declare function buildPoxSuccessXml({ emailAddress, displayName, easUrl }
30
30
  export interface AutodiscoverOutlookSuccess {
31
31
  emailAddress: string;
32
32
  displayName?: string;
33
+ /** The MAPI/HTTP `emsmdb` (mail store) endpoint. */
33
34
  mapiUrl: string;
35
+ /** The MAPI/HTTP `nspi` (address book) endpoint. Outlook can't finish setting up an account without one, so a caller that
36
+ * serves MAPI always passes it; left out, the response has no `AddressBook` block. */
37
+ nspiUrl?: string;
34
38
  }
35
39
  /**
36
40
  * Builds a real Outlook/EXCH `2006a` response per `[MS-OXDSCLI]`'s confirmed Autodiscover Response XSD -
@@ -47,11 +51,14 @@ export interface AutodiscoverOutlookSuccess {
47
51
  * request always gets the mapiHttp form - the real `X-MapiHttpCapability` request-header negotiation a full
48
52
  * implementation would consult to choose between EXCH/mapiHttp is not implemented, a documented gap.
49
53
  * `MailStore.InternalUrl`/`ExternalUrl` are both set to the same `mapiUrl`, since this library serves one URL
50
- * per deployment with no separate internal/external network split.
54
+ * per deployment with no separate internal/external network split. The `mapiHttp` `Protocol` also carries an `AddressBook`
55
+ * block (the `nspi` endpoint, `nspiUrl`) in the same shape: a MAPI/HTTP client uses the address book as well as the mail
56
+ * store, and Outlook stops right after the Autodiscover response - "Something went wrong and Outlook couldn't set up your
57
+ * account", with no request to either endpoint - when it is missing.
51
58
  *
52
59
  * `LegacyDN`/`DeploymentId` are schema-required fields this library has no real backing value for (no X.500
53
60
  * DN resolution, no multi-tenant deployment identity) - both are synthesized placeholders. Real Outlook does
54
61
  * not validate their exact content for MAPI/HTTP connectivity; they matter for classic RPC/TCP MAPI
55
62
  * free-busy/permissions lookups this library doesn't implement anyway.
56
63
  */
57
- export declare function buildOutlookSuccessXml({ emailAddress, displayName, mapiUrl }: AutodiscoverOutlookSuccess): string;
64
+ export declare function buildOutlookSuccessXml({ emailAddress, displayName, mapiUrl, nspiUrl }: AutodiscoverOutlookSuccess): string;
@@ -65,6 +65,8 @@ export declare abstract class BaseAutodiscoverRoute<M extends Mailbox> {
65
65
  /** The MAPI/HTTP `emsmdb` endpoint URL to report to a real Outlook desktop client, or `undefined` when MAPI
66
66
  * isn't available here. Only used by `pox()`'s Outlook/EXCH response branch. */
67
67
  protected get mapiUrl(): string | undefined;
68
+ /** The MAPI/HTTP `nspi` (address book) endpoint URL, reported beside `mapiUrl`: available exactly when it is. */
69
+ protected get nspiUrl(): string | undefined;
68
70
  private _objectFactory?;
69
71
  private mailboxRepo?;
70
72
  private logger;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@rapidmx/autodiscover-plugin",
3
- "version": "1.1.0",
3
+ "version": "1.2.1",
4
4
  "description": "A RapidMX plugin that provides Autodiscover protocol support.",
5
- "repository": "https://github.com/RapidMX/autodiscover.git",
5
+ "repository": "https://github.com/rapidmx/autodiscover-plugin.git",
6
6
  "author": "RapidREST <rapidrests@gmail.com>",
7
7
  "license": "MPL-2.0",
8
8
  "contributors": [
@@ -27,7 +27,7 @@
27
27
  "@rapidrest/service-core": "^2.x"
28
28
  },
29
29
  "devDependencies": {
30
- "@rapidmx/restapi": "^0.20.1",
30
+ "@rapidmx/restapi": "^0.22.1",
31
31
  "@rapidrest/core": "^6.0.0",
32
32
  "@rapidrest/service-core": "^2.3.0",
33
33
  "@swc/core": "^1.16.2",
@@ -97,8 +97,8 @@
97
97
  "key": "mail:autodiscover:public_url",
98
98
  "label": "Public server URL",
99
99
  "type": "string",
100
- "default": "",
101
- "help": "The address clients reach this server at, for example https://mail.example.com - the same host your DNS/MX setup already points at. Nothing is advertised until this is set. Also add a CNAME (autodiscover.<domain> -> this host) or, to avoid needing a second TLS certificate, a DNS SRV record (_autodiscover._tcp.<domain> -> this host) so mail clients can find this server automatically - see this deployment's Domain DNS setup checklist."
100
+ "default": "https://<host>",
101
+ "help": "The address clients reach this server at - the same host your DNS/MX setup already points at. Filled in with this server's address when the plugin is installed. Nothing is advertised until this is set. Also add a CNAME (autodiscover.<domain> -> this host) or, to avoid needing a second TLS certificate, a DNS SRV record (_autodiscover._tcp.<domain> -> this host) so mail clients can find this server automatically - see this deployment's Domain DNS setup checklist."
102
102
  }
103
103
  ],
104
104
  "requires": {