【发布时间】:2019-01-28 13:18:32
【问题描述】:
我想从电子邮件地址中提取别名部分。例如,如果我有“name+alias1+alias2+alias3@email.com”,我希望它返回子地址列表,在本例中为 alias1、alias2、alias3。
我有提取第一个别名的代码,如下所示:
var addr = new MailAddress("name+alias@email.com");
var username = addr.User;
var domain = addr.Host;
if (!username.Contains("+")) return;
var split = username.Split('+').ToList();
var name = split[0];
var alias = split[1];
但这不适用于多个地址。我也不想使用正则表达式(因为“现在你有两个问题”)。
【问题讨论】:
-
如果邮箱地址是
name@email.com怎么办? -
@mjwills 根据 RFC 5233,只允许一个加号,因此不应将其视为有效的电子邮件地址。
-
不管标准文档怎么说,gmail 允许在一个电子邮件地址中有两个
+。因此,您可能需要考虑输入name+alias+alias2@email.com时期望返回的内容。 -
非常好。刚刚自己测试过,它有效,我将编辑我的问题。
-
您可以使用拆分或正则表达式
标签: c# alias email-address