revert last commit, meant for heroku branch
This commit is contained in:
parent
13d31c62a6
commit
3b11f37162
3 changed files with 41 additions and 75 deletions
101
email/email.go
101
email/email.go
|
|
@ -3,7 +3,6 @@ package email
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
|
|
@ -13,10 +12,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/sendgrid/sendgrid-go"
|
||||
"github.com/sendgrid/sendgrid-go/helpers/mail"
|
||||
|
||||
// "github.com/go-mail/mail"
|
||||
"github.com/go-mail/mail"
|
||||
"github.com/jaytaylor/html2text"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/vanng822/go-premailer/premailer"
|
||||
|
|
@ -29,7 +25,7 @@ var (
|
|||
|
||||
// Mailer is a SMTP mailer.
|
||||
type Mailer struct {
|
||||
client *sendgrid.Client
|
||||
client *mail.Dialer
|
||||
from Email
|
||||
}
|
||||
|
||||
|
|
@ -39,49 +35,35 @@ func NewMailer() (*Mailer, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
// usage with sendgrid api key client
|
||||
apiKey := viper.GetString("SENDGRID_API_KEY")
|
||||
if apiKey == "" {
|
||||
return nil, errors.New("missing sendgrid api key")
|
||||
smtp := struct {
|
||||
Host string
|
||||
Port int
|
||||
User string
|
||||
Password string
|
||||
}{
|
||||
viper.GetString("email_smtp_host"),
|
||||
viper.GetInt("email_smtp_port"),
|
||||
viper.GetString("email_smtp_user"),
|
||||
viper.GetString("email_smtp_password"),
|
||||
}
|
||||
client := sendgrid.NewSendClient(apiKey)
|
||||
|
||||
mailer := &Mailer{
|
||||
client: client,
|
||||
s := &Mailer{
|
||||
client: mail.NewPlainDialer(smtp.Host, smtp.Port, smtp.User, smtp.Password),
|
||||
from: NewEmail(viper.GetString("email_from_name"), viper.GetString("email_from_address")),
|
||||
}
|
||||
return mailer, nil
|
||||
|
||||
// usage with go-mail basic smtp auth client
|
||||
// smtp := struct {
|
||||
// Host string
|
||||
// Port int
|
||||
// User string
|
||||
// Password string
|
||||
// }{
|
||||
// viper.GetString("email_smtp_host"),
|
||||
// viper.GetInt("email_smtp_port"),
|
||||
// viper.GetString("email_smtp_user"),
|
||||
// viper.GetString("email_smtp_password"),
|
||||
// }
|
||||
if smtp.Host == "" {
|
||||
log.Println("SMTP host not set => printing emails to stdout")
|
||||
debug = true
|
||||
return s, nil
|
||||
}
|
||||
|
||||
// s := &Mailer{
|
||||
// client: mail.NewDialer(smtp.Host, smtp.Port, smtp.User, smtp.Password),
|
||||
// from: NewEmail(viper.GetString("email_from_name"), viper.GetString("email_from_address")),
|
||||
// }
|
||||
|
||||
// if smtp.Host == "" {
|
||||
// log.Println("SMTP host not set => printing emails to stdout")
|
||||
// debug = true
|
||||
// return s, nil
|
||||
// }
|
||||
|
||||
// d, err := s.client.Dial()
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// d.Close()
|
||||
// return s, nil
|
||||
d, err := s.client.Dial()
|
||||
if err == nil {
|
||||
d.Close()
|
||||
return s, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Send sends the mail via smtp.
|
||||
|
|
@ -93,33 +75,14 @@ func (m *Mailer) Send(email *message) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// usage with sendgrid
|
||||
from := mail.NewEmail(email.from.Name, email.from.Address)
|
||||
to := mail.NewEmail(email.to.Name, email.to.Address)
|
||||
message := mail.NewSingleEmail(from, email.subject, to, email.text, email.html)
|
||||
msg := mail.NewMessage()
|
||||
msg.SetAddressHeader("From", email.from.Address, email.from.Name)
|
||||
msg.SetAddressHeader("To", email.to.Address, email.to.Name)
|
||||
msg.SetHeader("Subject", email.subject)
|
||||
msg.SetBody("text/plain", email.text)
|
||||
msg.AddAlternative("text/html", email.html)
|
||||
|
||||
response, err := m.client.Send(message)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if debug {
|
||||
log.Println(response.StatusCode)
|
||||
log.Println(response.Body)
|
||||
log.Println(response.Headers)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
// usage with go-mail
|
||||
// msg := mail.NewMessage()
|
||||
// msg.SetAddressHeader("From", email.from.Address, email.from.Name)
|
||||
// msg.SetAddressHeader("To", email.to.Address, email.to.Name)
|
||||
// msg.SetHeader("Subject", email.subject)
|
||||
// msg.SetBody("text/plain", email.text)
|
||||
// msg.AddAlternative("text/html", email.html)
|
||||
|
||||
// return m.client.DialAndSend(msg)
|
||||
return m.client.DialAndSend(msg)
|
||||
}
|
||||
|
||||
// message struct holds all parts of a specific email message.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue