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从这里开始是一个通用程序,应该适用于大多数情况。

链接地址: http://www.djcxy.com/p/92649.html

上一篇: How does Salesforce.com validate Email Fields?

下一篇: Regular expression to match email except for specific email address(es)