mirror of
https://github.com/disposable-email-domains/disposable-email-domains.git
synced 2024-11-22 16:48:13 +08:00
commit
ed360890bd
34
README.md
34
README.md
@ -86,6 +86,40 @@ rl.on('close', () => {
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**C#**
|
||||||
|
```C#
|
||||||
|
private static readonly Lazy<HashSet<string>> _emailBlackList =
|
||||||
|
new Lazy<HashSet<string>>(
|
||||||
|
() =>
|
||||||
|
{
|
||||||
|
var result = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
using (var reader = new StreamReader("disposable_email_blacklist.conf"))
|
||||||
|
{
|
||||||
|
string line;
|
||||||
|
while ((line = reader.ReadLine()) != null)
|
||||||
|
if (!string.IsNullOrWhiteSpace(line) && !line.TrimStart().StartsWith("//"))
|
||||||
|
result.Add(line);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
|
||||||
|
private static bool IsBlacklisted(string domain)
|
||||||
|
{
|
||||||
|
var parts = domain.Split('.');
|
||||||
|
var len = parts.Length;
|
||||||
|
return
|
||||||
|
len == 1 && _emailBlackList.Value.Contains(domain)
|
||||||
|
|| _emailBlackList.Value.Contains($"{parts[len - 2]}.{parts[len - 1]}")
|
||||||
|
|| len > 2 && _emailBlackList.Value.Contains($"{parts[len - 3]}.{parts[len - 2]}.{parts[len - 1]}");
|
||||||
|
}
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
var addr = new MailAddress(email);
|
||||||
|
if (IsBlacklisted(addr.Host)))
|
||||||
|
throw new ApplicationException("Email is blacklisted.");
|
||||||
|
```
|
||||||
|
|
||||||
Contributing
|
Contributing
|
||||||
============
|
============
|
||||||
Feel free to create PR with additions or request removal of some domain (with reasons).
|
Feel free to create PR with additions or request removal of some domain (with reasons).
|
||||||
|
Loading…
Reference in New Issue
Block a user