go-wiki/service/mail.go
2020-03-15 12:47:45 +01:00

59 lines
933 B
Go

package service
import (
"fmt"
"log"
"net/smtp"
)
// Mail holds contact form information
type Mail struct {
// Contact mail address
from string
// Mail body
message string
}
var hostMail string = "ruidy.nemausat@gmail.com"
var smtpServer string = "smtp.gmail.com:587"
// NewMail creates a Mail with from and body fields
func NewMail(from, body string) Mail {
return Mail{from, body}
}
// MailClient runs a mail client and send mail
func MailClient(m Mail) {
c, err := smtp.Dial(smtpServer)
if err != nil {
log.Fatal(err)
}
// c.StartTLS()
if err := c.Mail(hostMail); err != nil {
log.Fatal(err)
}
if err := c.Rcpt(hostMail); err != nil {
log.Fatal(err)
}
wc, err := c.Data()
if err != nil {
log.Fatal(err)
}
if _, err := fmt.Fprintf(wc, m.message); err != nil {
log.Fatal(err)
}
if err := wc.Close(); err != nil {
log.Fatal(err)
}
err = c.Quit()
if err != nil {
log.Fatal(err)
}
}