Example #1
0
 def test_subdomain(self):
     """
     email-split splitting an email on a subdomain
         returns the local part
         returns the domain part (including subdomain)
     """
     email = email_split('*****@*****.**')
     self.assertEqual(email.local, 'you')
     self.assertEqual(email.domain, 'are.super.cool')
Example #2
0
 def test_top_level_domain(self):
     """
     email-split splitting an email with a top-level domain
         returns the local part
         returns the domain part
     """
     email = email_split('*****@*****.**')
     self.assertEqual(email.local, 'todd')
     self.assertEqual(email.domain, 'underdog.io')
Example #3
0
 def test_top_level_domain(self):
     """
     email-split splitting an email with a top-level domain
         returns the local part
         returns the domain part
     """
     email = email_split('*****@*****.**')
     self.assertEqual(email.local, 'todd')
     self.assertEqual(email.domain, 'underdog.io')
Example #4
0
 def test_subdomain(self):
     """
     email-split splitting an email on a subdomain
         returns the local part
         returns the domain part (including subdomain)
     """
     email = email_split('*****@*****.**')
     self.assertEqual(email.local, 'you')
     self.assertEqual(email.domain, 'are.super.cool')
Example #5
0
def getDomain(email):
    if email is None or email.strip() == "":
        return None

    # change sth (special characters)
    for o, n in email_replace_strs.items():
        email = email.replace(o, n)
    email = email.replace(r"\s", "").lower()

    email_splits = email_split(email.strip())
    domain = email_splits.domain
    if domain == "":
        return None
    return domain
 def cleanMatches(self, matchFrame):
     stopwords = {'the'}
     for index, row in matchFrame.iterrows():
         tempString = cleanco(
             matchFrame.iloc[index]['company'].lower()).clean_name()
         resultwords = [
             word for word in re.split("\W+", tempString)
             if word.lower() not in stopwords
         ]
         result = ' '.join(resultwords)
         matchFrame.at[index, 'Clean Company'] = result.translate(
             None, string.punctuation)
         try:
             matchFrame.at[index, 'Email Domain'] = email_split(
                 row['email']).domain
         except Exception as e:
             print 'error ' + str(e)
             print 'no email'
             pass
Example #7
0
    def identify_o365(email_domain):

        email_domain = email_split(open(args.list).readline().rstrip())
        headers = {
            'User-Agent':
            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
            'Sec-Fetch-Dest': 'document'
        }
        url_structure = "https://login.microsoftonline.com/{}/.well-known/openid-configuration".format(
            email_domain.domain)
        r = requests.get(url_structure, headers=headers)
        subscribed = re.search('token_endpoint', r.text)

        # AADSTS90002	InvalidTenantName - The tenant name wasn't found in the data store. Check to make sure you have the correct tenant ID.
        if '"error_codes":[90002]' in r.text:  #If not subscribed
            print("The domain isn't using o365")
            exit()

        if subscribed:
            pass
def prepare_email(email):
    return email_split(email).local, email_split(email).domain
Example #9
0
def extract_email(email): 
    """ extract the email addresses from a user-friendly email address"""
    addresses = email_split(email)
    return addresses[0] if addresses else ''
def get_possible_email(contact_name, email):
    split_name_parts = []
    try:
        split_name_parts = pp.parse(contact_name, type='person')
    except TypeError as e:
        logger.error("possible_email: " + str(e) + ' - ' +
                     json.dumps(contact_name))
    given_name = ''
    surname = ''
    for split_name_part in split_name_parts:
        if split_name_part[1] == 'Surname':
            surname = split_name_part[0].lower()
        if split_name_part[1] == 'GivenName':
            given_name = split_name_part[0].lower()
    email = email.lower()
    email_parts = email_split(email)
    possible_emails = {}
    domain = email_parts.domain
    surname_first_letter = surname[0] if len(surname) else ''
    given_name_first_letter = given_name[0] if len(given_name) else ''

    possible_emails['given_name|surname'] = "%s%s@%s" % (given_name, surname,
                                                         domain)
    possible_emails['given_name|.|surname'] = "%s.%s@%s" % (given_name,
                                                            surname, domain)
    possible_emails['given_name|-|surname'] = "%s-%s@%s" % (given_name,
                                                            surname, domain)
    possible_emails['given_name|_|surname'] = "%s_%s@%s" % (given_name,
                                                            surname, domain)
    possible_emails['surname|given_name'] = "%s%s@%s" % (given_name, surname,
                                                         domain)
    possible_emails['surname|.|given_name'] = "%s.%s@%s" % (surname,
                                                            given_name, domain)
    possible_emails['surname|-|given_name'] = "%s-%s@%s" % (surname,
                                                            given_name, domain)
    possible_emails['surname|_|given_name'] = "%s_%s@%s" % (surname,
                                                            given_name, domain)
    possible_emails['surname0|.|given_name'] = "%s.%s@%s" % (
        surname_first_letter, given_name, domain)
    possible_emails['surname0|given_name'] = "%s%s@%s" % (surname_first_letter,
                                                          given_name, domain)
    possible_emails['surname0|-|given_name'] = "%s-%s@%s" % (
        surname_first_letter, given_name, domain)
    possible_emails['surname0|_|given_name'] = "%s_%s@%s" % (
        surname_first_letter, given_name, domain)
    possible_emails['given_name0|.|surname'] = "%s.%s@%s" % (
        given_name_first_letter, surname, domain)
    possible_emails['given_name0|surname'] = "%s%s@%s" % (
        given_name_first_letter, surname, domain)
    possible_emails['given_name0|-|surname'] = "%s-%s@%s" % (
        given_name_first_letter, surname, domain)
    possible_emails['given_name0|_|surname'] = "%s_%s@%s" % (
        given_name_first_letter, surname, domain)
    possible_emails['given_name|.|surname0'] = "%s.%s@%s" % (
        given_name, surname_first_letter, domain)
    possible_emails['given_name|surname0'] = "%s%s@%s" % (
        given_name, surname_first_letter, domain)
    possible_emails['given_name|-|surname0'] = "%s-%s@%s" % (
        given_name, surname_first_letter, domain)
    possible_emails['given_name|_|surname0'] = "%s_%s@%s" % (
        given_name, surname_first_letter, domain)
    possible_emails['surname|.|given_name0'] = "%s.%s@%s" % (
        surname, given_name_first_letter, domain)
    possible_emails['|surname|given_name0'] = "%s%s@%s" % (
        surname, given_name_first_letter, domain)
    possible_emails['surname|-|given_name0'] = "%s-%s@%s" % (
        surname, given_name_first_letter, domain)
    possible_emails['surname|_|given_name0'] = "%s_%s@%s" % (
        surname, given_name_first_letter, domain)
    possible_emails['surname0|given_name0'] = "%s%s@%s" % (
        surname_first_letter, given_name_first_letter, domain)
    possible_emails['given_name0|surname0'] = "%s%s@%s" % (
        given_name_first_letter, surname_first_letter, domain)
    possible_emails['surname'] = "%s@%s" % (surname, domain)
    possible_emails['given_name'] = "%s@%s" % (given_name, domain)

    for possible_pattern, possible_email in possible_emails.items():
        if possible_email == email:
            pattern = possible_pattern
            return {'pattern': pattern, 'email': possible_email}

    domain_split = email.split('@')
    if len(domain_split):
        email_domain = domain_split[0]
        if surname and given_name and surname in email_domain and given_name in email_domain:
            return {'pattern': '_surname_given_name_', 'email': email}

    return None