github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/presentation/converter/email.go (about)

     1  package converter
     2  
     3  import (
     4  	"github.com/go-email-validator/go-email-validator/pkg/ev/evmail"
     5  	"strings"
     6  )
     7  
     8  // EmailsForTests returns emails for tests
     9  func EmailsForTests() []string {
    10  	return []string{
    11  		"",
    12  		"asdas.da2da",
    13  		"asdas.dada",
    14  		"asd@asd@asd",
    15  		"zxczxczxc@joycasinoru",
    16  		"sewag33689@gmail.com",
    17  		"user99.doesnot.exist@gmail.com",
    18  		"amazedfuckporno@gmail.com",
    19  		"sewag33689@itymail.com",
    20  		"derduzikne@nedoz.com",
    21  		"tvzamhkdc@emlhub.com",
    22  		"theofanis.giot2is@12pm.gr",
    23  		"theofanisgiotis@12pm.gr",
    24  		"asdasd@tradepro.net",
    25  		"credit@mail.ru",
    26  		"salestrade86@hotmail.com",
    27  		"some.user.99@gmail.com",
    28  		"monicaramirezrestrepo@hotmail.com",
    29  		"admin@gmail.com",
    30  		"name@yandex.ru",
    31  		"admin@huntgear.ru",
    32  		"go.email.validator@gmail.com",
    33  		"radmal1982@yandex-team.ru",
    34  		"pr@yandex-team.ru",
    35  		"y-numata@senko.ed.jp",
    36  		"alexey@life-in-travels.ru",
    37  	}
    38  }
    39  
    40  // NewEmailAddress is a evmail.Address constructor
    41  func NewEmailAddress(username, domain string, at *string) evmail.Address {
    42  	return emailAddress{
    43  		username: strings.ToLower(username),
    44  		at:       at,
    45  		domain:   strings.ToLower(domain),
    46  	}
    47  }
    48  
    49  type emailAddress struct {
    50  	username string
    51  	at       *string
    52  	domain   string
    53  }
    54  
    55  func (e emailAddress) Username() string {
    56  	return e.username
    57  }
    58  
    59  func (e emailAddress) Domain() string {
    60  	return e.domain
    61  }
    62  
    63  func (e emailAddress) String() string {
    64  	if e.at == nil {
    65  		return e.Username() + evmail.AT + e.Domain()
    66  	}
    67  
    68  	return e.Username() + *e.at + e.Domain()
    69  }