Salesforce.com如何验证电子邮件字段?
我试图从另一个服务中存储Salesforce.com中的电子邮件地址,该服务允许指定无效的电子邮件地址。 如果其中一个错误的无效电子邮件地址通过其Web服务API发送到Salesforce.com,Salesforce.com将阻止该记录使用INVALID_EMAIL_ADDRESS错误代码进行保存。
我找不到任何有关如何禁用电子邮件字段验证的文档,因此看起来我需要在集成中验证它们,并提取那些失败的文档。 有谁知道Salesforce.com用来确定电子邮件地址是否有效的验证过程? 我现在所拥有的只是一个正则表达式,但我希望它与Salesforce.com的流程相匹配。
编辑:供参考,这里是我的正则表达式(我使用C#/。NET):
^(w|[!#$%'*+-/=?^_`{}~.&])+@w+([-.]w+)*.w+([-.]w+)*([,;]s*w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*)*$
总结:我们使用以下.NET RegEx:
const string SFEmailRegExPattern = @"^[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z]{2,4}$";
如果你能相信SF自己的文档,那么:
对于电子邮件地址的本地部分,我们接受以下字符。 本地部分是@符号之前的任何部分。
abcdefg.hijklmnopqrstuvwxyz!#$%&'*/=?^_+-
{|}〜0123456789`
注意:支持字符点“。”; 只要它不是本地部分中的第一个或最后一个字符
对于我们接受的电子邮件地址的域名部分。 域名部分是电子邮件地址中@之后的任何内容:
0-9 and AZ and az and dash “-“
有几个人把它编码为Java正则表达式,如下所示:
String pat = '[a-zA-Z0-9.!#$%&*/=?^_+-`{|}~'._%+-]+@[a-zA-Z0-9-.-]+.[a-zA-Z]+';
尽管对我来说,这看起来似乎不能拒绝以“。”开头的电子邮件。 所以并不完美。
我不知道salesforce.com如何验证电子邮件地址,但是由于您使用的是.NET,我建议您考虑一个电子邮件验证组件,例如我们的EmailVerify.NET,该组件符合当前的IETF标准(RFC 1123,RFC 2821,RFC 2822,RFC 3490,RFC 3696,RFC 4291,RFC 5321,RFC 5322和RFC 5336),并且不受ReDoS的困扰:如果需要,它甚至会检查被测试的电子邮件域的DNS记录, SMTP可用性,验证相关的邮箱,甚至可以知道目标邮件交换机是否为全部或者它是一次性/免费电子邮件地址提供商。
我不知道salesforce.com使用了什么(我认为你没有办法找到),但是b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[AZ]{2,4}b
从这里开始是一个通用程序,应该适用于大多数情况。
上一篇: How does Salesforce.com validate Email Fields?
下一篇: Regular expression to match email except for specific email address(es)