MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / SendEmail

Method SendEmail

pkg/identityserver/email.go:32–63  ·  view source on GitHub ↗

SendEmail sends an email.

(ctx context.Context, message *email.Message)

Source from the content-addressed store, hash-verified

30
31// SendEmail sends an email.
32func (is *IdentityServer) SendEmail(ctx context.Context, message *email.Message) (err error) {
33 logger := log.FromContext(ctx).WithFields(log.Fields(
34 "to", message.RecipientAddress,
35 "subject", message.Subject,
36 "template_name", message.TemplateName,
37 "body", message.TextBody,
38 ))
39 isConfig := is.configFromContext(ctx)
40 var sender email.Sender
41 switch isConfig.Email.Provider {
42 case "sendgrid":
43 sender, err = sendgrid.New(ctx, isConfig.Email.Config, isConfig.Email.SendGrid)
44 case "smtp":
45 sender, err = smtp.New(ctx, isConfig.Email.Config, isConfig.Email.SMTP)
46 case "dir":
47 sender, err = dir.New(ctx, isConfig.Email.Config, isConfig.Email.Dir)
48 }
49 if err != nil {
50 logger.WithError(err).Warn("Could not send email without email provider")
51 return err
52 }
53 if sender == nil {
54 logger.Warn("Could not send email without email provider")
55 return nil
56 }
57 err = sender.Send(message)
58 if err != nil {
59 logger.WithError(err).Warn("Failed to send email")
60 return err
61 }
62 return nil
63}
64
65// SendTemplateEmailToUsers sends an email to users.
66func (is *IdentityServer) SendTemplateEmailToUsers(

Callers 2

Implementers 5

mockInteroppkg/component/interop_test.go
interopServerpkg/joinserver/http_interop.go
noopServerpkg/interop/server.go
mockTargetpkg/interop/server_test.go
interopServerpkg/identityserver/http_interop.go

Calls 10

configFromContextMethod · 0.95
SendMethod · 0.95
FromContextFunction · 0.92
FieldsFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
WithFieldsMethod · 0.65
WarnMethod · 0.65
WithErrorMethod · 0.65

Tested by

no test coverage detected