Esempio n. 1
0
 def normalize_email(email):
     """
         Return a normalized form of the email address:
         - lowercase
         - applying host-specific rules for domains hosted by Google, Microsoft, Yahoo, Fastmail
     """
     return email_normalize.normalize(email.strip(), resolve=False)
Esempio n. 2
0
 def test_invalid_domain_part(self):
     address = '{}@{}'.format(uuid.uuid4(), uuid.uuid4())
     result = email_normalize.normalize(address)
     self.assertIsInstance(result, email_normalize.Result)
     self.assertEqual(result.address, address)
     self.assertEqual(result.normalized_address, address)
     self.assertListEqual(result.mx_records, [])
     self.assertIsNone(result.mailbox_provider)
Esempio n. 3
0
File: ctl.py Progetto: yosshy/amane
def normalize(addresses):
    logging.debug(addresses)
    result = []
    for address in addresses:
        try:
            cleaned = email_normalize.normalize(address, resolve=False)
            if isinstance(cleaned, str):
                result.append(cleaned)
        except:
            pass
    return set(result)
Esempio n. 4
0
 def _perform_test(self, address: str, normalized: str,
                   mx_records: typing.List[typing.Tuple[int, str]],
                   provider: typing.Optional[str]):
     with mock.patch('email_normalize.Normalizer.mx_records') as mxr:
         mxr.return_value = mx_records
         result = email_normalize.normalize(address)
     self.assertIsInstance(result, email_normalize.Result)
     self.assertEqual(result.address, address)
     self.assertEqual(result.normalized_address, normalized)
     self.assertListEqual(result.mx_records, mx_records)
     self.assertEqual(result.mailbox_provider, provider)
Esempio n. 5
0
    def clean_email(self, *args, **kwargs):
        address = self.cleaned_data['email']
        norm_addr = email_normalize.normalize(address)
        _, domain = norm_addr.rsplit('@', 1)

        if domain in utils.get_config('email_host_blacklist'):
            raise ValidationError(
                ('Accounts can not be resistered with email addresses '
                 'provided by this host.'),
                code='BAD_HOST')

        if Poster.objects.filter(normalized_email=norm_addr).count():
            raise ValidationError(
                'Email address is already associated with an account',
                code='TOO_SIMILAR')

        return address
Esempio n. 6
0
 def test_normalization(self):
     self.assertEqual(normalize('*****@*****.**'),
                      '*****@*****.**')
Esempio n. 7
0
 def test_normalization_tld_b(self):
     self.assertEqual(normalize('*****@*****.**'),
                      '*****@*****.**')
Esempio n. 8
0
 def test_normalization(self):
     self.assertEqual(normalize('*****@*****.**'),
                      '*****@*****.**')
Esempio n. 9
0
 def test_no_resolution(self):
     self.assertEqual(normalize('"Me!" <*****@*****.**>', False),
                      '*****@*****.**')
Esempio n. 10
0
 def test_mx_verification_normalization(self):
     self.assertEqual(normalize('*****@*****.**'),
                      '*****@*****.**')
Esempio n. 11
0
 def test_gmail_domain_part(self):
     self.assertEqual(normalize('"Me!" <*****@*****.**>'),
                      '*****@*****.**')
Esempio n. 12
0
 def test_fastmail_variation_b(self):
     self.assertEqual(normalize('*****@*****.**'),
                      '*****@*****.**')
Esempio n. 13
0
 def test_fastmail_variation_a(self):
     self.assertEqual(normalize('*****@*****.**'),
                      '*****@*****.**')
Esempio n. 14
0
def set_normalized_email(sender, instance, **kwargs):
    if instance.email:
        instance.normalized_email = email_normalize.normalize(instance.email)
Esempio n. 15
0
def normalize_email(apps, schema_editor):
    Poster = apps.get_model('ISS', 'Poster')
    for poster in Poster.objects.all():
        poster.normalized_email = normalize(poster.email)
        poster.save()
Esempio n. 16
0
# pip install email-normalize

from email_normalize import normalize
# from email_normalizer import normalize

normalized = normalize('*****@*****.**')
print(normalized)

normalized = normalize('*****@*****.**')
print(normalized)

normalized = normalize('*****@*****.**')
print(normalized)