80 lines
1.6 KiB
Go
80 lines
1.6 KiB
Go
|
package mail
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"crypto/tls"
|
||
|
"text/template"
|
||
|
|
||
|
"git.andreafazzi.eu/andrea/oef/config"
|
||
|
|
||
|
"gopkg.in/gomail.v2"
|
||
|
)
|
||
|
|
||
|
type Subscriber interface {
|
||
|
NameForMail() string
|
||
|
Username() string
|
||
|
Password() string
|
||
|
To() string
|
||
|
}
|
||
|
|
||
|
var (
|
||
|
mail = `
|
||
|
Spettabile {{.NameForMail}},
|
||
|
|
||
|
grazie per l'interesse manifestato per le Olimpiadi di Economia e Finanza.
|
||
|
|
||
|
Di seguito riportiamo le credenziali di accesso tramite le quali potrà gestire le iscrizioni dei suoi studenti alla competizione (Fase Regionale).
|
||
|
|
||
|
username: {{.Username}}
|
||
|
password: {{.Password}}
|
||
|
|
||
|
Per accedere alla pagina di login occorrerà seguire questo link
|
||
|
|
||
|
https://iscrizioni.olimpiadi-economiaefinanza.it/
|
||
|
|
||
|
ed inserire le credenziali riportate sopra (si consiglia di effettuare un copia/incolla).
|
||
|
|
||
|
Cordialmente,
|
||
|
Lo Staff delle OEF 2020.
|
||
|
`
|
||
|
subject = "[OEF2020] - Credenziali di accesso della scuola"
|
||
|
|
||
|
mailTpl *template.Template
|
||
|
)
|
||
|
|
||
|
func init() {
|
||
|
mailTpl = template.Must(template.New("subscription_mail").Parse(mail))
|
||
|
}
|
||
|
|
||
|
func SendSubscriptionMail(rcv Subscriber) error {
|
||
|
var body bytes.Buffer
|
||
|
|
||
|
m := gomail.NewMessage()
|
||
|
m.SetHeader("Subject", subject)
|
||
|
m.SetHeader("From", config.Config.Smtp.From)
|
||
|
m.SetHeader("To", rcv.To())
|
||
|
m.SetHeader("Bcc", config.Config.Smtp.Bcc)
|
||
|
|
||
|
err := mailTpl.Execute(&body, rcv)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
m.SetBody("text/plain", body.String())
|
||
|
|
||
|
dialer := gomail.NewDialer(
|
||
|
config.Config.Smtp.Host,
|
||
|
config.Config.Smtp.Port,
|
||
|
config.Config.Smtp.Username,
|
||
|
config.Config.Smtp.Password,
|
||
|
)
|
||
|
dialer.TLSConfig = &tls.Config{InsecureSkipVerify: true}
|
||
|
|
||
|
if err := dialer.DialAndSend(m); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
|
||
|
}
|