Email Address Public Information

Provides the ability to lookup public information for email addresses in the same network.

When an email address is provisioned, matching public and private keys are also generated for encrypting messages addressed to and sent from that address.

Clients of the Sudo Platform have the ability to lookup public information for email addresses as a means of verifying that an email address exists and to determine the public key to use to encrypt messages addressed to that email address.

Only email addresses that belong to the same domain(s) for a particular Sudo Platform Email Service configuration may be retrieved, i.e., if configured to use *@domain-1.com, a lookup forfoo@domain-1.com would be performed, whereas bar@domain-2.com would fail.

The following table describes the available public information for an email address:

Data
Definition

Email Address

Fully qualified email address of the form <localPart@domain>, e.g., example@sudoplatform.com.

Public Key

Public key associated with the email address.

Looking Up Email Address Public Information

Public information for email addresses can be retrieved in batches by passing a list of email addresses to the lookupEmailAddressesPublicInfo method. This returns a list of EmailAddressPublicInfo entries containing emailAddress and publicKey for each input email address. Items in the result list are returned in the same order as requested.

Failure to return a EmailAddressPublicInfo entry for an email address means that either the email address was not found in the system, or it belongs to an unsupported domain. In the event of a partial failure such as this, the result list will contain entries for the success cases only. Failure to retrieve all email addresses in a request will result in an empty list.

The maximum number of email addresses provided to the input cannot be more than 50. Supplying a list larger than this will return a LimitExceededError.

// Email addresses to be looked up
const emailAddresses = [
  'email-address-1@domain.com',
  'email-address-2@domain.com',
]

try {
  const input = LookupEmailAddressesPublicInfoInput(
    emailAddresses
  )
  const emailAddressesPublicInfo = await emailClient
    .lookupEmailAddressesPublicInfo(input)
    
  // Assuming `emailAddresses` are valid email addresses and the
  // client shares the same (*@domain.com in this case) network,
  // `emailAddressesPublicInfo` will contain `EmailAddressPublicInfo`
  // objects for each email address, e.g.:
    
  // emailAddressesPublicInfo[0] --> {
  //   emailAddress: 'email-address-1@domain.com',
  //   publicKey: <public key string>
  // }
    
  // emailAddressesPublicInfo[1] --> {
  //   emailAddress: 'email-address-2@domain.com',
  //   publicKey: <public key string>
  // }
} catch (e) {
  // Handle/notify user of errors
}

Last updated