add mailgun test
This commit is contained in:
parent
563907d477
commit
aab56909cb
|
@ -1,3 +1,5 @@
|
||||||
|
.env
|
||||||
|
|
||||||
/public-jwks
|
/public-jwks
|
||||||
/go-mockid
|
/go-mockid
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
mailgun "github.com/mailgun/mailgun-go/v3"
|
||||||
|
|
||||||
|
_ "github.com/joho/godotenv/autoload"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
/*
|
||||||
|
MAILGUN_API_KEY=key-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
MAILGUN_DOMAIN=mail.example.com
|
||||||
|
MAILGUN_FROM="Rob the Robot <rob.the.robot@mail.example.com>"
|
||||||
|
*/
|
||||||
|
|
||||||
|
to := flag.String("to", "", "message recipient in the format of 'John Doe <john@example.com>'")
|
||||||
|
replyTo := flag.String("reply-to", "", "reply-to in the format of 'John Doe <john@example.com>'")
|
||||||
|
subject := flag.String("subject", "Test Subject", "the utf8-encoded subject of the email")
|
||||||
|
text := flag.String(
|
||||||
|
"text",
|
||||||
|
"Testing some Mailgun awesomeness!",
|
||||||
|
"the body of the email as utf8-encoded plain-text format",
|
||||||
|
)
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
if 0 == len(*to) {
|
||||||
|
flag.Usage()
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
domain := os.Getenv("MAILGUN_DOMAIN")
|
||||||
|
apiKey := os.Getenv("MAILGUN_API_KEY")
|
||||||
|
from := os.Getenv("MAILGUN_FROM")
|
||||||
|
|
||||||
|
if 0 == len(*text) {
|
||||||
|
*text = "Testing some Mailgun awesomeness!"
|
||||||
|
}
|
||||||
|
|
||||||
|
msgId, err := SendSimpleMessage(domain, apiKey, *to, from, *subject, *text, *replyTo)
|
||||||
|
if nil != err {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
fmt.Printf("Queued with Message ID %q\n", msgId)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SendSimpleMessage(domain, apiKey, to, from, subject, text, replyTo string) (string, error) {
|
||||||
|
mg := mailgun.NewMailgun(domain, apiKey)
|
||||||
|
m := mg.NewMessage(from, subject, text, to)
|
||||||
|
if 0 != len(replyTo) {
|
||||||
|
// mailgun's required "h:" prefix is added by the library
|
||||||
|
m.AddHeader("Reply-To", replyTo)
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
_, id, err := mg.Send(ctx, m)
|
||||||
|
return id, err
|
||||||
|
}
|
1
go.mod
1
go.mod
|
@ -5,4 +5,5 @@ go 1.13
|
||||||
require (
|
require (
|
||||||
git.rootprojects.org/root/keypairs v0.5.2
|
git.rootprojects.org/root/keypairs v0.5.2
|
||||||
github.com/joho/godotenv v1.3.0
|
github.com/joho/godotenv v1.3.0
|
||||||
|
github.com/mailgun/mailgun-go/v3 v3.6.4
|
||||||
)
|
)
|
||||||
|
|
14
go.sum
14
go.sum
|
@ -1,4 +1,18 @@
|
||||||
git.rootprojects.org/root/keypairs v0.5.2 h1:jr+drUUm/REaCDJTl5gT3kF2PwlXygcLsBZlqoKTZZw=
|
git.rootprojects.org/root/keypairs v0.5.2 h1:jr+drUUm/REaCDJTl5gT3kF2PwlXygcLsBZlqoKTZZw=
|
||||||
git.rootprojects.org/root/keypairs v0.5.2/go.mod h1:WGI8PadOp+4LjUuI+wNlSwcJwFtY8L9XuNjuO3213HA=
|
git.rootprojects.org/root/keypairs v0.5.2/go.mod h1:WGI8PadOp+4LjUuI+wNlSwcJwFtY8L9XuNjuO3213HA=
|
||||||
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64=
|
||||||
|
github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg=
|
||||||
|
github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0=
|
||||||
|
github.com/go-chi/chi v4.0.0+incompatible h1:SiLLEDyAkqNnw+T/uDTf3aFB9T4FTrwMpuYrgaRcnW4=
|
||||||
|
github.com/go-chi/chi v4.0.0+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ=
|
||||||
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
|
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
|
||||||
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
||||||
|
github.com/mailgun/mailgun-go v1.1.1 h1:mjMcm4qz+SbjAYbGJ6DKROViKtO5S0YjpuOUxQfdr2A=
|
||||||
|
github.com/mailgun/mailgun-go v2.0.0+incompatible h1:0FoRHWwMUctnd8KIR3vtZbqdfjpIMxOZgcSa51s8F8o=
|
||||||
|
github.com/mailgun/mailgun-go/v3 v3.6.4 h1:+cvbZRgLSHivbz/w1iWLmxVl6Bqf4geD2D7QMj4+8PE=
|
||||||
|
github.com/mailgun/mailgun-go/v3 v3.6.4/go.mod h1:ZjVnH8S0dR2BLjvkZc/rxwerdcirzlA12LQDuGAadR0=
|
||||||
|
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=
|
||||||
|
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
|
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||||
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
|
Loading…
Reference in New Issue