IsEmailAddressInternal
Checks if the email address is part of the internal domains.
javascript · Common Scripts
Source
function toBoolean(value) { if (typeof (value) === 'string') { if (['yes', 'true'].indexOf(value.toLowerCase()) != -1) { return true; } else if (['no', 'false'].indexOf(value.toLowerCase()) != -1) { return false; } throw 'Argument does not contain a valid boolean-like value'; } return value ? true : false; } function escapeRegex(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } function main() { const emails = argToList(args.email); const domains = argToList(args.domain).map(x => x.toLowerCase()); const includeSubdomains = toBoolean(args.include_subdomains); let results = []; for (let i = 0; i < emails.length; i++) { const parts = emails[i].split('@', 2); let networkType = 'Unknown'; let inDomain = 'no'; if (parts.length > 1) { const domain = parts[1].toLowerCase(); if (domains.indexOf(domain) !== -1 || (includeSubdomains && new RegExp(`^(.*\\.)?(${domains.map(d => escapeRegex(d)).join('|')})`).test(domain))) { inDomain = 'yes'; networkType = 'Internal'; } else { networkType = 'External'; } const emailDict = { 'Address': emails[i], 'Domain': domain, 'Username': parts[0], 'NetworkType': networkType }; const emailObj = { 'Account.Email(val.Address && val.Address == obj.Address)': emailDict }; results.push({ 'Type': entryTypes['note'], 'ContentsFormat': formats['json'], 'Contents': inDomain, 'HumanReadable': inDomain, 'EntryContext': emailObj }); } else { results.push({ Type: entryTypes.error, ContentsFormat: formats.text, Contents: `Email address "${emails[i]}" is not valid` }); } } return results; } try { return main(); } catch (error) { throw 'Error occurred while running the script:\n' + error; }
README
Checks if the email address is part of the internal domain.
Script Data
| Name | Description |
|---|---|
| Script Type | javascript |
| Tags |
Inputs
| Argument Name | Description |
|---|---|
| The email address to check. | |
| domain | The list of internal domains to check. (comma-separated) |
| include_subdomains | Whether to include the subdomains of the domain list. |
Outputs
| Path | Description | Type |
|---|---|---|
| Account.Email.Address | The email accounts full address. | string |
| Account.Email.Username | The email accounts username. | string |
| Account.Email.Domain | The email accounts domain. | string |
| Account.Email.NetworkType | The eil account NetworkType. Can be, “Internal” or “External”. | string |