| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package main
- import (
- "bufio"
- "log"
- "os"
- "regexp"
- "strings"
- "time"
- mail "./go-simple-mail"
- )
- // CheckAddressMaillist
- func CheckAddressMaillist(maillist string) string {
- strings.Replace(maillist, "noreply@aske-futurskill.com;", "", -1)
- maillistArray := strings.Split(maillist, ";")
- var index = 0
- re := regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")
- var newMaillist = ""
- for _, elem := range maillistArray {
- if re.MatchString(elem) {
- if index > 0 {
- newMaillist += ";"
- }
- newMaillist += elem
- index++
- }
- }
- return newMaillist
- }
- // GetMailtoFile
- func GetMailtoFile(filename string) string {
- file, err := os.Open(filename)
- if err != nil {
- log.Panic(err)
- }
- scanner := bufio.NewScanner(file)
- scanner.Split(bufio.ScanLines)
- var txtlines []string
- for scanner.Scan() {
- txtlines = append(txtlines, scanner.Text())
- }
- file.Close()
- var maillist string
- var index = 0
- for _, line := range txtlines {
- if index > 0 {
- maillist += ";"
- }
- maillist += line
- index++
- }
- email := CheckAddressMaillist(maillist)
- return email
- }
- func main() {
- filename := os.Args[1]
- subject := os.Args[2]
- msg := os.Args[3]
- smtpServ := mail.NewSMTPClient()
- smtpServ.Host = "webmailsmtp.register.it"
- smtpServ.Port = 25
- smtpServ.Password = ""
- smtpServ.Encryption = mail.EncryptionTLS
- // smtpServ.Authentication = mail.AuthPlain
- smtpServ.KeepAlive = false
- smtpServ.ConnectTimeout = 10 * time.Second
- smtpServ.SendTimeout = 10 * time.Second
- _, err := smtpServ.Connect()
- if err != nil {
- log.Fatal(err)
- }
- email := mail.NewMSG()
- email.SetFrom("From Support ASkE <noreply@aske-futurskill.com>")
- email.AddTo("support@aske-futurskill.com")
- email.AddBcc(GetMailtoFile(filename))
- email.SetSubject(subject)
- email.SetBody(mail.TextHTML, msg)
- if err != nil {
- log.Println(err)
- } else {
- log.Println("Email sent")
- }
- }
|