Documentation ¶
Overview ¶
Package grpc provides the actual logic for posting emails to queue or to mail servers
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ExposedConfigs = &forms.Form{ I18NBundle: lang.Bundle(), Groups: []*forms.Group{{ Label: "Mail.Config.Title", Fields: []forms.Field{ &forms.FormField{ Name: "from", Label: "Mail.Config.From.Label", Description: "Mail.Config.From.Description", Mandatory: true, Type: forms.ParamString, }, &forms.FormField{ Name: "fromName", Label: "Mail.Config.FromName.Label", Description: "Mail.Config.FromName.Description", Mandatory: false, Type: forms.ParamString, }, &forms.FormField{ Name: "fromCtl", Label: "Mail.Config.FromCtl.Label", Description: "Mail.Config.FromCtl.Description", Mandatory: false, Default: "user", Type: forms.ParamSelect, ChoicePresetList: []map[string]string{ {"user": "Mail.Config.FromCtlUser.Label"}, {"sender": "Mail.Config.FromCtlSender.Label"}, {"default": "Mail.Config.FromCtlDefault.Label"}, }, }, &forms.SwitchField{ Name: "sender", Label: "Mail.Config.Mailer.Label", Description: "Mail.Config.Mailer.Description", Mandatory: true, Default: "disabled", Values: []*forms.SwitchValue{ { Name: "name", Label: "Mail.Config.Disabled.Label", Value: "disabled", Fields: []forms.Field{}, }, { Name: "name", Label: "Mail.Config.NoOp.Label", Value: "noop", Fields: []forms.Field{ &forms.FormField{ Name: "dump", Type: forms.ParamBool, Default: false, Label: "Mail.Config.NoOp.Dump", Description: "Mail.Config.NoOp.Dump", }, &forms.FormField{ Name: "dumpFolder", Type: forms.ParamString, Default: "{SERVICE_DIR}/mails", Label: "Mail.Config.NoOp.DumpTarget", Description: "Mail.Config.NoOp.DumpTarget", }, }, }, { Name: "name", Label: "Mail.Config.Sendmail.Label", Value: "sendmail", Fields: []forms.Field{ &forms.FormField{ Name: "legend", Type: forms.ParamLegend, Description: "Mail.Config.Sendmail.Legend", }, }, }, { Name: "name", Label: "Mail.Config.Smtp.Label", Value: "smtp", Fields: []forms.Field{ &forms.FormField{ Name: "host", Label: "Mail.Config.Smtp.Host.Label", Description: "Mail.Config.Smtp.Host.Description", Mandatory: true, Type: forms.ParamString, }, &forms.FormField{ Name: "port", Label: "Mail.Config.Smtp.Port.Label", Description: "Mail.Config.Smtp.Port.Description", Mandatory: true, Default: 465, Type: forms.ParamInteger, }, &forms.FormField{ Name: "user", Label: "Mail.Config.Smtp.User.Label", Description: "Mail.Config.Smtp.User.Description", Mandatory: true, Type: forms.ParamString, }, &forms.FormField{ Name: "password", Label: "Mail.Config.Smtp.Password.Label", Description: "Mail.Config.Smtp.Password.Description", Mandatory: true, Type: forms.ParamPassword, }, &forms.FormField{ Name: "insecureSkipVerify", Label: "Mail.Config.Smtp.SkipVerify.Label", Description: "Mail.Config.Smtp.SkipVerify.Description", Mandatory: false, Type: forms.ParamBool, }, &forms.FormField{ Name: "localName", Label: "Mail.Config.Smtp.LocalName.Label", Description: "Mail.Config.Smtp.LocalName.Description", Mandatory: false, Type: forms.ParamString, }, }, }, { Name: "name", Label: "Mail.Config.SendGrid.Label", Value: "sendgrid", Fields: []forms.Field{ &forms.FormField{ Name: "apiKey", Label: "Mail.Config.SendGrid.ApiKey.Label", Description: "Mail.Config.SendGrid.ApiKey.Description", Mandatory: true, Type: forms.ParamString, }, }, }, }, }, }, }}, }
View Source
var ( // Name is the identifier of this service Name = common.ServiceGrpcNamespace_ + common.ServiceMailer )
Functions ¶
func RegisterQueueJob ¶
RegisterQueueJob adds a job to the scheduler to regularly flush the queue
Types ¶
type Handler ¶
type Handler struct { proto.UnimplementedMailerServiceServer // contains filtered or unexported fields }
func NewHandler ¶
func (*Handler) ConsumeQueue ¶
func (h *Handler) ConsumeQueue(ctx context.Context, req *proto.ConsumeQueueRequest) (*proto.ConsumeQueueResponse, error)
ConsumeQueue browses current queue for emails to be sent
func (*Handler) SendMail ¶
func (h *Handler) SendMail(ctx context.Context, req *proto.SendMailRequest) (*proto.SendMailResponse, error)
SendMail either queues or send a mail directly
Click to show internal directories.
Click to hide internal directories.