5 changed files with 110 additions and 9 deletions
@ -0,0 +1,58 @@
|
||||
package mail |
||||
|
||||
import ( |
||||
"bytes" |
||||
"net/smtp" |
||||
"strings" |
||||
"text/template" |
||||
) |
||||
|
||||
// Mail holds the mail sender object
|
||||
type Mail struct { |
||||
auth smtp.Auth |
||||
smtpaddr string |
||||
fromAddr string |
||||
domain string |
||||
tmpl *template.Template |
||||
} |
||||
|
||||
// Init mail sender
|
||||
func Init(email, password, smtpaddr, domain string) *Mail { |
||||
tmpl := template.Must(template.ParseFiles( |
||||
"tmpl/wellcome.mail", |
||||
)) |
||||
hostname := strings.Split(smtpaddr, ":")[0] |
||||
username := strings.Split(email, "@")[0] |
||||
return &Mail{ |
||||
auth: smtp.PlainAuth("", username, password, hostname), |
||||
smtpaddr: smtpaddr, |
||||
fromAddr: email, |
||||
domain: domain, |
||||
tmpl: tmpl, |
||||
} |
||||
} |
||||
|
||||
type tmplData struct { |
||||
To string |
||||
From string |
||||
Data interface{} |
||||
} |
||||
|
||||
// Send mail to recipients using a mail template
|
||||
func (m Mail) Send(to []string, template string, data interface{}) error { |
||||
for i, recipient := range to { |
||||
if !strings.Contains(recipient, "@") { |
||||
to[i] += "@" + m.domain |
||||
} |
||||
} |
||||
tmplD := tmplData{ |
||||
To: strings.Join(to, ", "), |
||||
From: m.fromAddr, |
||||
Data: data} |
||||
var buff bytes.Buffer |
||||
err := m.tmpl.ExecuteTemplate(&buff, template+".mail", tmplD) |
||||
if err != nil { |
||||
return err |
||||
} |
||||
return smtp.SendMail(m.smtpaddr, m.auth, m.fromAddr, to, buff.Bytes()) |
||||
} |
@ -0,0 +1,27 @@
|
||||
To: {{.To}} |
||||
From: {{.From}} |
||||
Content-Type: text/plain; charset="utf-4" |
||||
Subject: ¡Bienvenida a SinDominio! |
||||
|
||||
Hola {{.Data}}, |
||||
|
||||
Una SinDominante te ha invitado a formar parte de SinDominio como amiga, ¡bienvenida! |
||||
|
||||
A partir de ahora tienes acceso a servicios como el correo electronico [https://webmail.sindominio.net] y el chat [https://chat.sindominio.net/]. |
||||
|
||||
No te exigimos una participación en la asamblea de SinDominio pero nos gustaría que conocieras este proyecto. Y si quisieras formar parte de ella, e implicarte de forma directa en SinDominio, las puertas están abiertas, únicamente necesitarás una SinDominante que te amadrine así como la aprobación por parte de la asamblea. |
||||
|
||||
Irás recibiendo nuestros boletines informativos donde iremos comunicando las novedades, necesidades y notícias referentes a la situación del proyecto. |
||||
|
||||
No dudes en contactarnos si tienes alguna sugeréncia o duda o simplemente quieres felicitarnos por mantener vivo este proyecto: sd@sindominio.net |
||||
|
||||
SinDominio tiene unos costes económicos para el mantenimiento físico de la infraestructura y su conexión a internet. Piensa que hay unas máquinas conectadas las 24 horas del día que consumen electricidad, discos duros, fuentes de alimentación, etc y la conexión de datos, gastos de los cuales no conseguimos escapar por ahora. Estas diferentes estructuras necesitan ser renovadas de vez en cuando. |
||||
|
||||
Por ello te invitamos a no olvidarnos cuando tengas algo de dinero ahorrado para dar a esos proyectos en los que confías. Con tus aportaciones a SinDominio estás contribuyendo a que las comunicaciones sean más seguras y libres para muchos colectivos y personas. |
||||
|
||||
Ayuda a que SinDominio siga funcionando otros 20 años más. |
||||
|
||||
Caja de Ingenieros - ES86 3025 0006 21 1433230004. |
||||
|
||||
Gracias |
||||
la Asamblea de SinDominio |
Loading…
Reference in new issue