115 lines
2.3 KiB
Go
115 lines
2.3 KiB
Go
package rabbitmq
|
|
|
|
import (
|
|
"time"
|
|
|
|
"clickandjoin.app/emailserver/modules/config"
|
|
gorabbitmqclient "git.clickandjoin.umbach.dev/ClickandJoin/go-rabbitmq-client"
|
|
)
|
|
|
|
const queueMails = "cnj.mails"
|
|
|
|
var MailsClient *gorabbitmqclient.Client
|
|
|
|
func Init() {
|
|
cfg := config.Cfg
|
|
|
|
MailsClient = gorabbitmqclient.NewClient(
|
|
cfg.Debug,
|
|
gorabbitmqclient.ExchangeSettings{},
|
|
gorabbitmqclient.QueueSettings{},
|
|
gorabbitmqclient.ChannelQosSettingsDefault,
|
|
gorabbitmqclient.Config{
|
|
ReconnectDelay: 1 * time.Second,
|
|
ReInitDelay: 1 * time.Second,
|
|
ResendDelay: 5 * time.Second,
|
|
},
|
|
gorabbitmqclient.GetConnectionString(
|
|
cfg.RabbitMq.Username,
|
|
cfg.RabbitMq.Password,
|
|
cfg.RabbitMq.Host))
|
|
|
|
<-time.After(time.Second)
|
|
|
|
MailMessagesHandling()
|
|
}
|
|
|
|
/*
|
|
func Init() {
|
|
conn, err := amqp.Dial(getConnectionString())
|
|
|
|
if err != nil {
|
|
logrus.Fatalln("RabbitMQ connection failed, err:", err)
|
|
}
|
|
|
|
ch, err := conn.Channel()
|
|
|
|
if err != nil {
|
|
logrus.Fatalln(err)
|
|
}
|
|
|
|
Channel = ch
|
|
|
|
err = ch.Qos(
|
|
1, // prefetch count
|
|
0, // prefetch size
|
|
false, // global
|
|
)
|
|
|
|
if err != nil {
|
|
logrus.Fatalln("Failed to set Qos, err:", err)
|
|
}
|
|
|
|
msgs, err := ch.Consume(
|
|
queueMails, // queue
|
|
"", // consumer
|
|
false, // auto-ack
|
|
false, // exclusive
|
|
false, // no-local
|
|
false, // no-wait
|
|
nil, // args
|
|
)
|
|
|
|
if err != nil {
|
|
logrus.Fatalln("Failed to consume mails, err:", err)
|
|
}
|
|
|
|
var forever chan struct{}
|
|
|
|
go func() {
|
|
for d := range msgs {
|
|
logrus.Debugln("RECV MAIL")
|
|
|
|
mailMessage := structs.RabbitMqMailMessage{}
|
|
|
|
if err := json.Unmarshal(d.Body, &mailMessage); err != nil {
|
|
logrus.Errorln("Failed to unmarshal json message, err:", err)
|
|
continue
|
|
}
|
|
|
|
logrus.Println(mailMessage.UserMail)
|
|
|
|
// only for testing
|
|
if !strings.HasSuffix(mailMessage.UserMail, "@roese.dev") && !strings.HasSuffix(mailMessage.UserMail, "@umbach.dev") {
|
|
mailMessage.UserMail = "info@clickandjoin.de"
|
|
}
|
|
|
|
err = mailer.NewMail(structs.Mail{
|
|
To: []string{mailMessage.UserMail},
|
|
TemplateId: mailMessage.TemplateId,
|
|
LanguageId: mailMessage.LanguageId,
|
|
BodyData: mailMessage.BodyData})
|
|
|
|
if err != nil {
|
|
logrus.Errorln("Failed to send new mail, err:", err)
|
|
continue
|
|
}
|
|
|
|
d.Ack(false)
|
|
}
|
|
}()
|
|
|
|
<-forever
|
|
}
|
|
*/
|