LogoLogo
  • Platform Overview
  • 🗺️Guides
    • Getting Started
    • Users
      • Integrate the User SDK
      • Registration
      • Authentication
      • SDK Releases
      • API Reference
    • Entitlements
      • Administrative API
        • Integrating the Administrative API
        • Entitlement Definitions
        • Managing Entitlements Sets
        • Managing Entitlements Sequences
        • Managing User Entitlements
        • API Schema
      • End-user API
        • Integrate the Entitlements SDK
        • Redeeming Entitlements
        • Retrieving Entitlements
        • SDK Releases
        • API Reference
    • Sudos
      • Integrate the Sudo Profiles SDK
      • Sudo Entitlements
      • Manage Sudos
      • SDK Releases
      • API Reference
    • Telephony
      • Integrate the Telephony SDK
      • Manage Phone Numbers
      • Text Messaging
      • Voice Calling
      • Telephony Simulator
      • SDK Releases
      • API Reference
    • Email
      • Integrate the Email SDK
      • Email Entitlements
      • Manage Email Addresses
      • Sending & Receiving Email
      • Manage Email Folders
      • Draft Email Messages
      • Schedule Send
      • Manage Email Address Blocklists
      • Email Address Public Information
      • Pagination
      • Caching
      • Configuration Data
      • Email Notifications
      • SDK Releases
      • API Reference
    • Decentralized Identity
      • Edge Agent
        • Relay SDK
          • Integrate the Relay SDK
          • Relay Entitlements
          • Manage Relay Postboxes
          • Manage Relay Messages
          • Receiving Messages
          • SDK Releases
        • Edge Agent SDK
          • Integrate the Edge Agent SDK
          • Agent Management
          • Manage Wallets
          • Establishing Connections
          • Manage Connections
          • Messaging
          • Manage DIDs
          • Accepting New Credentials
          • Manage Credentials
          • Present Credentials for Verification
          • Utilize Alternative Cryptography Providers
          • SDK Releases
          • Standards and Protocols
      • Cloud Agent
        • Cloud Agent Admin API
          • Integrate the Cloud Agent Admin API
          • Aries Interop Profile (AIP)
            • Connection Exchanges
            • Credential Exchanges
            • Proof Exchanges
          • Connections
          • Basic Messages
          • Credentials
            • Anoncreds Credentials
              • Schemas
              • Credential Definitions
            • W3C Credentials
          • Audit Logs
          • API Schema
          • Error Codes
          • Standards and Protocols
    • Virtual Cards
      • Integrate the Virtual Cards SDK
      • Virtual Cards Entitlements
      • Virtual Cards Transaction Velocity Constraints
      • Key Management
      • Manage Funding Sources
      • Manage Virtual Cards
      • Manage Transactions
      • Configuration Data
      • Pagination
      • Caching
      • SDK Releases
      • API Reference
    • Virtual Cards Simulator
      • Integrate the Virtual Cards Simulator SDK
      • Simulate Authorizations
      • Simulate Debits
      • Simulate Refunds
      • Simulate Reversals
      • Merchants and Currencies
      • SDK Releases
      • API Reference
    • Virtual Private Network
      • Integrate the VPN SDK
      • VPN Entitlements
      • Manage Servers
      • Manage Connection
      • Observe VPN Related Events
      • SDK Releases
      • API Reference
      • Frequently Asked Questions
    • Secure ID Verification
      • Integrate the Secure ID Verification SDK
      • List Supported Countries
      • Verify an Identity
      • Check Secure ID Verification Status
      • Use the Secure ID Verification Simulator
      • SDK Releases
      • API Reference
    • Password Manager
      • Integrate the Password Manager SDK
      • Accessing the Password Manager
      • Managing Password Vaults
      • Managing Password Vault Items
      • Vault Import and Export
      • Password Utilities
      • Password Manager Entitlements
      • Password Vault Security
      • SDK Releases
      • API Reference
    • Ad/Tracker Blocker
      • Integrate the Ad/Tracker Blocker SDK
      • Manage Rulesets
      • Blocking Ads and Trackers
      • Manage Exceptions
      • SDK Releases
      • API Reference
    • Site Reputation
      • Integrate the Site Reputation SDK
      • Use the Site Reputation SDK
      • SDK Releases
      • API Reference
  • 💡Concepts
    • Sudo Digital Identities
  • 🧱Development
    • Versioning
  • 🏢Administration
    • Admin Console Roles
  • ❓Get Help
    • Request a Demo
    • Report an Issue
Powered by GitBook
On this page
  1. Guides
  2. Email

Email Address Public Information

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

PreviousManage Email Address BlocklistsNextPagination

Last updated 12 months ago

When an email address is , 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
}
// 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
}
// Email addresses to be looked up
val addresses = listOf(
    "email-address-1@domain.com",
    "email-address-2@domain.com"
)

launch {
    try {
        val input = LookupEmailAddressesPublicInfoInput(
            emailAddresses = emailAddresses
        )
        val emailAddressesPublicInfo = withContext(Dispatchers.IO) {
            emailClient.lookupEmailAddressesPublicInfo(input)
        }
        
        // If `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 (e: EmailAddressException) {
        // Handle/notify user of exception
    }
}
🗺️
provisioned