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