all repos — auth-boilerplate @ 1e0eb8a8122edac2c020fcc78539437884b89358

A simple Go web-app boilerplate.

src/email/email.go (view raw)

 1package email
 2
 3import (
 4	"net/smtp"
 5)
 6
 7// EmailConfig rappresenta la configurazione necessaria per inviare un'email
 8type Client struct {
 9	email string
10
11	auth smtp.Auth
12	addr string
13}
14
15// Email rappresenta il contenuto dell'email
16type Email struct {
17	To      []string
18	Subject string
19	Body    string
20}
21
22func NewClient(senderEmail, password, host, port string) *Client {
23	return &Client{
24		addr: host + ":" + port,
25		auth: smtp.PlainAuth("", senderEmail, password, host),
26	}
27}
28
29// Send invia l'email utilizzando la configurazione fornita
30func (config *Client) Send(email Email) error {
31	// Costruzione del messaggio
32	msg := "From: " + config.email + "\n" +
33		"To: " + email.To[0] + "\n" +
34		"Subject: " + email.Subject + "\n\n" +
35		email.Body
36
37	// Invio email tramite il server SMTP
38	err := smtp.SendMail(config.addr, config.auth, config.email, email.To, []byte(msg))
39	if err != nil {
40		return err
41	}
42
43	return nil
44}