Merge pull request #56 from ponthief/main
support for SendGrid payments/balance emails
This commit is contained in:
commit
3b9db705f5
5 changed files with 95 additions and 61 deletions
|
|
@ -32,3 +32,5 @@ Here are the descriptions of values available to use in the `settings` table:
|
|||
| FUNCTION_LNDHUB | DISABLE | system level switch for using LNDHUB in place of LND |
|
||||
| LNDHUB_URL | | URL for the LNDHUB service |
|
||||
| FUNCTION_INTERNAL_API | DISABLE | system level switch for activating the internal API |
|
||||
| SENDGRID_API_KEY | | User API Key from SendGrid.com |
|
||||
| SENDGRID_EMAIL_SENDER | | Single Sender email address verified by SendGrid |
|
||||
|
|
|
|||
|
|
@ -1,15 +1,18 @@
|
|||
package email
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/awserr"
|
||||
"github.com/aws/aws-sdk-go/aws/credentials"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/ses"
|
||||
"github.com/boltcard/boltcard/db"
|
||||
"github.com/sendgrid/sendgrid-go"
|
||||
"github.com/sendgrid/sendgrid-go/helpers/mail"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func Send_balance_email(recipient_email string, card_id int) {
|
||||
|
|
@ -86,9 +89,29 @@ func Send_balance_email(recipient_email string, card_id int) {
|
|||
}
|
||||
|
||||
// https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/ses-example-send-email.html
|
||||
// https://github.com/sendgrid/sendgrid-go
|
||||
|
||||
func Send_email(recipient string, subject string, htmlBody string, textBody string) {
|
||||
|
||||
send_grid_api_key := db.Get_setting("SENDGRID_API_KEY")
|
||||
send_grid_email_sender := db.Get_setting("SENDGRID_EMAIL_SENDER")
|
||||
if send_grid_api_key != "" && send_grid_email_sender != "" {
|
||||
from := mail.NewEmail("", send_grid_email_sender)
|
||||
subject := subject
|
||||
to := mail.NewEmail("", recipient)
|
||||
plainTextContent := textBody
|
||||
htmlContent := htmlBody
|
||||
message := mail.NewSingleEmail(from, subject, to, plainTextContent, htmlContent)
|
||||
client := sendgrid.NewSendClient(send_grid_api_key)
|
||||
response, err := client.Send(message)
|
||||
if err != nil {
|
||||
log.Warn(err.Error())
|
||||
} else {
|
||||
log.WithFields(log.Fields{"result": response}).Info("email sent")
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
aws_ses_id := db.Get_setting("AWS_SES_ID")
|
||||
aws_ses_secret := db.Get_setting("AWS_SES_SECRET")
|
||||
sender := db.Get_setting("AWS_SES_EMAIL_FROM")
|
||||
|
|
@ -152,4 +175,5 @@ func Send_email(recipient string, subject string, htmlBody string, textBody stri
|
|||
}
|
||||
|
||||
log.WithFields(log.Fields{"result": result}).Info("email sent")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
2
go.mod
2
go.mod
|
|
@ -97,6 +97,8 @@ require (
|
|||
github.com/prometheus/common v0.37.0 // indirect
|
||||
github.com/prometheus/procfs v0.8.0 // indirect
|
||||
github.com/rogpeppe/fastuuid v1.2.0 // indirect
|
||||
github.com/sendgrid/rest v2.6.9+incompatible // indirect
|
||||
github.com/sendgrid/sendgrid-go v3.12.0+incompatible // indirect
|
||||
github.com/soheilhy/cmux v0.1.5 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/stretchr/objx v0.5.0 // indirect
|
||||
|
|
|
|||
4
go.sum
4
go.sum
|
|
@ -607,6 +607,10 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD
|
|||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||
github.com/sendgrid/rest v2.6.9+incompatible h1:1EyIcsNdn9KIisLW50MKwmSRSK+ekueiEMJ7NEoxJo0=
|
||||
github.com/sendgrid/rest v2.6.9+incompatible/go.mod h1:kXX7q3jZtJXK5c5qK83bSGMdV6tsOE70KbHoqJls4lE=
|
||||
github.com/sendgrid/sendgrid-go v3.12.0+incompatible h1:/N2vx18Fg1KmQOh6zESc5FJB8pYwt5QFBDflYPh1KVg=
|
||||
github.com/sendgrid/sendgrid-go v3.12.0+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8=
|
||||
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
|
||||
github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ=
|
||||
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
|
||||
|
|
|
|||
|
|
@ -29,3 +29,5 @@ INSERT INTO settings (name, value) VALUES ('EMAIL_MAX_TXS', '');
|
|||
INSERT INTO settings (name, value) VALUES ('FUNCTION_LNDHUB', '');
|
||||
INSERT INTO settings (name, value) VALUES ('LNDHUB_URL', '');
|
||||
INSERT INTO settings (name, value) VALUES ('FUNCTION_INTERNAL_API', '');
|
||||
INSERT INTO settings (name, value) VALUES ('SENDGRID_API_KEY', '');
|
||||
INSERT INTO settings (name, value) VALUES ('SENDGRID_EMAIL_SENDER', '');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue