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 } */