- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于 Delphi 没有内置任何正则表达式库,您是否见过一个仅使用 Delphi RTL/VCL 至少在某种程度上验证电子邮件地址的好函数?
我不想将额外的 *.dll 链接到集成正则表达式支持的产品,并且我还需要 Delphi 7 兼容性。将正则表达式库嵌入到 exe 中会增加其大小,我怀疑是否值得添加下一个 100k,因为您只需要 10-50 行电子邮件验证功能。
最佳答案
电子邮件地址验证的最大问题是 RFC 822范围如此广泛,任何正则表达式都无济于事。
文章I Knew How To Validate An Email Address Until I Read The RFC很好地描述了这一点。
它引用了 RFC 本地部分必须仅由地址的域部分中指定的主机来解释和分配语义
(本地部分
是 之前的部分) code>@
登录电子邮件地址)。
所以:
检查电子邮件地址是否有效的唯一方法是设置与接受该特定域的邮件的主机的 SMTP 连接,并使用您尝试验证的电子邮件地址启动电子邮件握手过程。
这就是许多反垃圾邮件软件验证发件人电子邮件地址的方法:它们联系电子邮件发件人的 SMTP 服务器,尝试设置 SMTP 握手,如果一切正常,它们会对传入电子邮件进行评级因为更喜欢不成为垃圾邮件。
可以使用Indy SMTP客户端组件发送邮件;接受的答案 this question解释了如何操作。
--杰罗恩
关于Delphi:无需正则表达式即可验证电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3565692/
这实际上是我问的问题的一部分here ,该问题没有得到答复,最终被标记为重复。 问题:我只需使用 @Autowired 注释即可使用 JavaMailSender。我没有通过任何配置类公开它。 @Co
我是一名优秀的程序员,十分优秀!