use gmail relay
parent
20041347ad
commit
1ced19905d
3
main.go
3
main.go
|
@ -1,8 +1,6 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"clickandjoin.app/emailserver/mailer"
|
"clickandjoin.app/emailserver/mailer"
|
||||||
"clickandjoin.app/emailserver/modules/config"
|
"clickandjoin.app/emailserver/modules/config"
|
||||||
"clickandjoin.app/emailserver/modules/rabbitmq"
|
"clickandjoin.app/emailserver/modules/rabbitmq"
|
||||||
|
@ -25,7 +23,6 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
fmt.Println("Email server started")
|
|
||||||
gocnjhelper.LogInfo("Email server started")
|
gocnjhelper.LogInfo("Email server started")
|
||||||
|
|
||||||
rabbitmq.Init()
|
rabbitmq.Init()
|
||||||
|
|
|
@ -2,10 +2,12 @@ package structs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"crypto/tls"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
"html/template"
|
"html/template"
|
||||||
"net/smtp"
|
"net/smtp"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -49,11 +51,89 @@ func (m *Mail) Send(htmlBody, textBody string) error {
|
||||||
htmlBody + "\n\n" +
|
htmlBody + "\n\n" +
|
||||||
"--" + boundary + "--"
|
"--" + boundary + "--"
|
||||||
|
|
||||||
|
/*
|
||||||
err := smtp.SendMail(cfg.Host+":"+cfg.Port, cache.SmtpAuth, cfg.FromEmail, m.To, []byte(msg))
|
err := smtp.SendMail(cfg.Host+":"+cfg.Port, cache.SmtpAuth, cfg.FromEmail, m.To, []byte(msg))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
gocnjhelper.LogErrorf("smtp error: %s", err)
|
gocnjhelper.LogErrorf("smtp error: %s", err)
|
||||||
return err
|
return err
|
||||||
|
} */
|
||||||
|
|
||||||
|
// create connection to SMTP-Server
|
||||||
|
|
||||||
|
// SMTP-Server-Adresse and Port
|
||||||
|
serverAddr := cfg.Host + ":" + cfg.Port
|
||||||
|
|
||||||
|
// TLS-Konfiguration mit Servernamen
|
||||||
|
tlsConfig := &tls.Config{
|
||||||
|
ServerName: cfg.Host,
|
||||||
|
}
|
||||||
|
|
||||||
|
conn, err := smtp.Dial(serverAddr)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error connecting to server: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
|
hostname, err := os.Hostname()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error getting hostname: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// send EHLO
|
||||||
|
err = conn.Hello(hostname)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error sending EHLO: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// start tls connection
|
||||||
|
if err = conn.StartTLS(tlsConfig); err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error starting TLS: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// auth and send mail
|
||||||
|
if err = conn.Auth(cache.SmtpAuth); err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error authenticating: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = conn.Mail(cfg.FromEmail); err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error setting sender: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = conn.Rcpt(m.To[0]); err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error setting receiver: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
w, err := conn.Data()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error getting data writer: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = w.Write([]byte(msg))
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error writing message: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = w.Close()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
gocnjhelper.LogErrorf("Error closing data writer: %s", err)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue