When an email contains a label enclosed in parentheses, the value can be saved as typed in via SF UI. (Note: the email value "as is" is only seen when in Edit mode.) However, when the record is saved using Apex or Query Editor on Developer Console, the content in parentheses is lost.
For example, a user specifies an email as: [email protected] (Foe Test)
When saving the record via SF UI, the result is: [email protected] (foe test)
When saving the record using Apex, the result is: [email protected]
Why is there inconsistency in saving an email value. How can we save an email containing parentheses using Apex?
Account acc = new Account(name = 'Test Email');
insert acc;
String email = '[email protected] (any label)';
Contact c = new Contact (lastName = 'Test', accountId = acc.id, email = email);
insert c;
Contact cDb = [
SELECT
id,
accountId,
name,
email
FROM Contact
WHERE id = :c.id
][0];
System.assertEquals(c.email, cDb.email);
[email protected]
but in listview shows as[email protected] (foe test)
. Value in db is[email protected] (foe test)
.