【发布时间】:2013-09-01 02:59:51
【问题描述】:
许多人不知道,电子邮件地址需要一个库来解析。像@(.*) 这样的简单正则表达式是不够的。电子邮件地址甚至可以包含 cmets,其中可以包含 @ 等字符,从而破坏简单的正则表达式。
有一个 Node.js library 可以解析 RFC 2822 地址:
var address = addresses[0];
console.log("Email address: " + address.address);
console.log("Email name: " + address.name());
console.log("Reformatted: " + address.format());
console.log("User part: " + address.user());
console.log("Host part: " + address.host());
几乎是 perl 模块 Mail::Address 的直接端口。
这是我希望在 Java 的 InternetAddress 类中存在的东西,但它不会比完整地址进一步分解,它可以包括例如user@gmail.com。但我正在尝试提取 gmail.com 部分,它不包含要执行的方法。
我很惊讶我找不到解决这个问题的通用库,但想必很多人都有这个问题。使用图书馆如何解决这个问题?
【问题讨论】:
-
域名中可以出现cmets吗?如果没有,只需解析
lastIndexOf("@")之后的电子邮件地址 -
@SotiriosDelimanolis 是的,他们可以。
标签: java email jakarta-mail email-address rfc2822