Files
server/src/Core/Utilities/StrictEmailAddressAttribute.cs
Thomas Rittson 757102fd96 Fixes for StrictEmailAddressAttribute (#1474)
* Use StrictEmail validation for changing email

* Add trailing symbols to illegal chars in emails

* Add semicolon as always illegal

* Replace regex with MimeKit parsing, add unit test

* Add more unit tests

* Fix linting
2021-07-23 05:59:10 +10:00

37 lines
947 B
C#

using System.ComponentModel.DataAnnotations;
using MimeKit;
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;
}
try
{
var parsedEmailAddress = MailboxAddress.Parse(emailAddress).Address;
if (parsedEmailAddress != emailAddress)
{
return false;
}
}
catch (ParseException e)
{
return false;
}
return new EmailAddressAttribute().IsValid(emailAddress);
}
}
}