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.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 ") 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") } }