For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 a domain managed by a particular Sudo Platform Email Service configuration may be retrieved, i.e., if configured to use *@domain-1.com, a lookup for foo@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

emailAddress

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

keyId

The unique identifier of the public key associated with the email address

publicKeyDetails

Details of the public key associated with the email address, including: - publicKey: The key data - keyFormat: The format of the key (RSAPublicKey or SPKI) - The encryption algorithm associated with the key (RSA, ECDSA, etc)

enableEncryption

Boolean indicating if the email address is eligible for E2EE within the Sudo Platform

Lookup 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.

If all of the email addresses passed into lookupEmailAddressesPublicInfo successfully return with their EmailAddressPublicInfo and have the enableEncryption flag set to true, then an Email Message sent to that list of addresses will have E2EE enabled on it.

// 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 within the configued instance of Sudo Platform Email,
  // `emailAddressesPublicInfo` will contain `EmailAddressPublicInfo` for each one
} catch (e) {
  // Handle/notify user of errors
}
// Email addresses to be looked up
let emailAddresses = [
    "email-address-1@domain.com",
    "email-address-2@domain.com"
]

try {
    let input = LookupEmailAddressesPublicInfoInput(
        emailAddresses: emailAddresses
    )
    let emailAddressesPublicInfo = await emailClient
        .lookupEmailAddressesPublicInfo(input)
    
    // Assuming `emailAddresses` are valid email addresses and the
    // user 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 {
    // Handle/notify user of errors
}

Last updated