Albirew/nyaa-pantsu
Archivé
1
0
Bifurcation 0

Added tool for sending emails

Cette révision appartient à :
akuma06 2017-05-06 20:07:03 +02:00
Parent acaa68eb66
révision 9a8783a071
3 fichiers modifiés avec 81 ajouts et 0 suppressions

Voir le fichier

@ -8,6 +8,7 @@ install:
- go get github.com/jinzhu/gorm
- go get github.com/Sirupsen/logrus
- go get gopkg.in/natefinch/lumberjack.v2
- go get gopkg.in/gomail.v2
- go build
deploy:
provider: releases

15
config/email.go Fichier normal
Voir le fichier

@ -0,0 +1,15 @@
package config
import "time"
const (
SendEmail = true
EmailFrom = "donotrespond@nyaa.pantsu.cat"
EmailTestTo = ""
EmailHost = "localhost"
EmailUsername = ""
EmailPassword = ""
EmailPort = 465
// EmailTimeout = 80 * time.Millisecond
EmailTimeout = 10 * time.Second
)

65
util/email/email.go Fichier normal
Voir le fichier

@ -0,0 +1,65 @@
package email
import (
"errors"
"path/filepath"
"sync/atomic"
"time"
"github.com/ewhal/nyaa/config"
"github.com/ewhal/nyaa/util/log"
gomail "gopkg.in/gomail.v2"
)
type EmailError error
var (
mailer = InitGomail()
)
func InitGomail() *gomail.Mailer {
mailer := gomail.NewMailer(config.EmailHost, config.EmailUsername, config.EmailPassword, config.EmailPort)
return mailer
}
func SendEmailFromAdmin(to string, subject string, body string, bodyHTML string) error {
msg := gomail.NewMessage()
msg.SetHeader("From", config.EmailFrom)
msg.SetHeader("To", to, config.EmailTestTo)
msg.SetHeader("Subject", subject)
msg.SetBody("text/plain", body)
msg.AddAlternative("text/html", bodyHTML)
log.Debugf("to : %s", to)
log.Debugf("subject : %s", subject)
log.Debugf("body : %s", body)
log.Debugf("bodyHTML : %s", bodyHTML)
if config.SendEmail {
log.Debug("SendEmail performed.")
err := mailer.DialAndSend(msg);
return err
}
return nil
}
func SendTestEmail() error {
msg := gomail.NewMessage()
msg.SetHeader("From", config.EmailFrom)
msg.SetHeader("To", config.EmailTestTo)
msg.SetAddressHeader("Cc", config.EmailTestTo, "NyaaPantsu")
msg.SetHeader("Subject", "Hi(안녕하세요)?!")
msg.SetBody("text/plain", "Hi(안녕하세요)?!")
msg.AddAlternative("text/html", "<p><b>Nowplay(나우플레이)</b> means <i>Let's play</i>!!?</p>")
path, err := filepath.Abs("img/megumin.png")
if err != nil {
panic(err)
}
f, err := gomail.OpenFile(path)
if err != nil {
panic(err)
}
msg.Attach(f)
// SendEmail(msg)
err := mailer.DialAndSend(msg);
return err
}