diff --git a/main.go b/main.go index f95be66..cc38fc6 100644 --- a/main.go +++ b/main.go @@ -30,16 +30,16 @@ import ( ) type constants struct { - RootURL string `koanf:"root"` - LogoURL string `koanf:"logo_url"` - FaviconURL string `koanf:"favicon_url"` - UnsubscribeURL string - LinkTrackURL string - ViewTrackURL string - OptinURL string - FromEmail string `koanf:"from_email"` - NotifyEmails []string `koanf:"notify_emails"` - Privacy privacyOptions `koanf:"privacy"` + RootURL string `koanf:"root"` + LogoURL string `koanf:"logo_url"` + FaviconURL string `koanf:"favicon_url"` + UnsubURL string + LinkTrackURL string + ViewTrackURL string + OptinURL string + FromEmail string `koanf:"from_email"` + NotifyEmails []string `koanf:"notify_emails"` + Privacy privacyOptions `koanf:"privacy"` } type privacyOptions struct { @@ -309,7 +309,7 @@ func main() { // Static URLS. // url.com/subscription/{campaign_uuid}/{subscriber_uuid} - c.UnsubscribeURL = fmt.Sprintf("%s/subscription/%%s/%%s", app.Constants.RootURL) + c.UnsubURL = fmt.Sprintf("%s/subscription/%%s/%%s", app.Constants.RootURL) // url.com/subscription/optin/{subscriber_uuid} c.OptinURL = fmt.Sprintf("%s/subscription/optin/%%s?%%s", app.Constants.RootURL) @@ -328,7 +328,7 @@ func main() { Concurrency: ko.Int("app.concurrency"), MaxSendErrors: ko.Int("app.max_send_errors"), FromEmail: app.Constants.FromEmail, - UnsubURL: c.UnsubscribeURL, + UnsubURL: c.UnsubURL, OptinURL: c.OptinURL, LinkTrackURL: c.LinkTrackURL, ViewTrackURL: c.ViewTrackURL, diff --git a/manager/manager.go b/manager/manager.go index 44ce726..2652227 100644 --- a/manager/manager.go +++ b/manager/manager.go @@ -63,8 +63,9 @@ type Message struct { Subscriber *models.Subscriber Body []byte - from string - to string + from string + to string + unsubURL string } // Config has parameters for configuring the manager. @@ -108,8 +109,9 @@ func (m *Manager) NewMessage(c *models.Campaign, s *models.Subscriber) *Message Campaign: c, Subscriber: s, - from: c.FromEmail, - to: s.Email, + from: c.FromEmail, + to: s.Email, + unsubURL: fmt.Sprintf(m.cfg.UnsubURL, c.UUID, s.UUID), } } @@ -422,7 +424,7 @@ func (m *Manager) TemplateFuncs(c *models.Campaign) template.FuncMap { fmt.Sprintf(m.cfg.ViewTrackURL, msg.Campaign.UUID, msg.Subscriber.UUID))) }, "UnsubscribeURL": func(msg *Message) string { - return fmt.Sprintf(m.cfg.UnsubURL, c.UUID, msg.Subscriber.UUID) + return msg.unsubURL }, "OptinURL": func(msg *Message) string { // Add list IDs.