email: allow sending emails from EU Mailgun domains
The Mailgun API requires being told when a EU email domain is used[1] so introduce a new `mailgun_europe` config parameter to indicate that. [1]: https://github.com/mailgun/mailgun-go?tab=readme-ov-file#usage
This commit is contained in:
parent
f49c0b1c4c
commit
83e0a57338
3 changed files with 10 additions and 0 deletions
|
@ -181,6 +181,7 @@ type (
|
|||
// Mailgun configuration values
|
||||
Domain string `ini:"domain"`
|
||||
MailgunPrivate string `ini:"mailgun_private"`
|
||||
MailgunEurope bool `ini:"mailgun_europe"`
|
||||
}
|
||||
|
||||
// Config holds the complete configuration for running a writefreely instance
|
||||
|
|
6
email.go
6
email.go
|
@ -309,6 +309,12 @@ Originally published on ` + p.Collection.DisplayTitle() + ` (` + p.Collection.Ca
|
|||
Sent to %recipient.to%. Unsubscribe: ` + p.Collection.CanonicalURL() + `email/unsubscribe/%recipient.id%?t=%recipient.token%`
|
||||
|
||||
gun := mailgun.NewMailgun(app.cfg.Email.Domain, app.cfg.Email.MailgunPrivate)
|
||||
|
||||
if app.cfg.Email.MailgunEurope {
|
||||
gun.SetAPIBase("https://api.eu.mailgun.net/v3")
|
||||
}
|
||||
|
||||
|
||||
m := mailgun.NewMessage(p.Collection.DisplayTitle()+" <"+p.Collection.Alias+"@"+app.cfg.Email.Domain+">", stripmd.Strip(p.DisplayTitle()), plainMsg)
|
||||
replyTo := app.db.GetCollectionAttribute(collID, collAttrLetterReplyTo)
|
||||
if replyTo != "" {
|
||||
|
|
|
@ -36,6 +36,9 @@ func New(eCfg config.EmailCfg) (*Mailer, error) {
|
|||
m := &Mailer{}
|
||||
if eCfg.Domain != "" && eCfg.MailgunPrivate != "" {
|
||||
m.mailGun = mailgun.NewMailgun(eCfg.Domain, eCfg.MailgunPrivate)
|
||||
if eCfg.MailgunEurope {
|
||||
m.mailGun.SetAPIBase("https://api.eu.mailgun.net/v3")
|
||||
}
|
||||
} else if eCfg.Username != "" && eCfg.Password != "" && eCfg.Host != "" && eCfg.Port > 0 {
|
||||
m.smtp = mail.NewSMTPClient()
|
||||
m.smtp.Host = eCfg.Host
|
||||
|
|
Loading…
Add table
Reference in a new issue