2021-07-23 05:59:10 +10:00
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
|
using MimeKit;
|
2021-07-16 08:01:51 +10:00
|
|
|
|
|
|
|
|
|
|
namespace Bit.Core.Utilities
|
|
|
|
|
|
{
|
|
|
|
|
|
public class StrictEmailAddressAttribute : ValidationAttribute
|
|
|
|
|
|
{
|
|
|
|
|
|
public StrictEmailAddressAttribute()
|
|
|
|
|
|
: base("The {0} field is not a valid e-mail address.")
|
|
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
|
|
public override bool IsValid(object value)
|
|
|
|
|
|
{
|
|
|
|
|
|
var emailAddress = value?.ToString();
|
|
|
|
|
|
if (emailAddress == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-07-23 05:59:10 +10:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var parsedEmailAddress = MailboxAddress.Parse(emailAddress).Address;
|
|
|
|
|
|
if (parsedEmailAddress != emailAddress)
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (ParseException e)
|
2021-07-16 08:01:51 +10:00
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2021-07-23 05:59:10 +10:00
|
|
|
|
|
2021-07-16 08:01:51 +10:00
|
|
|
|
return new EmailAddressAttribute().IsValid(emailAddress);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|