README ¶
Mailer Service
Generic service to send email. Encapsulates various implementations, currently :
- SMTP server connection
- SendMail call to sendmail on the command line
- SendGrid Call to Sendgrid API
Queue
TODO: a queue mechanism to avoid spamming mail server should be implemented to batch emails.
GRPC and REST Services
A grpc service is used internally by other services to send email, e.g. by the Activity Service when sending user alerts or user digests, or the Scheduler service to send jobs results to Administrator, etc.
A REST service is exposed to the frontend to allow direct communication between users.
Documentation ¶
Overview ¶
Package mailer acts a central mail server for the application.
It implements various types of communication with actual mail servers (sendmail, smtp, sendgrid API) and a simple queue mechanism to avoid spamming these servers.
Index ¶
Constants ¶
const (
// MaxSendRetries defines number of retries in case of connection failure.
MaxSendRetries = 5
)
Variables ¶
This section is empty.
Functions ¶
func NewGomailMessage ¶
NewGomailMessage prepares a new Message to be sent.
Types ¶
type BoltQueue ¶
type BoltQueue struct { // For Testing purpose : delete file after closing DeleteOnClose bool // Path to the DB file DbPath string // contains filtered or unexported fields }
BoltQueue defines a queue for the mails backed by a Bolt DB.
func NewBoltQueue ¶
NewBoltQueue creates a Bolt DB if necessary.
func (*BoltQueue) Close ¶
Close closes the DB and delete corresponding file if deleteOnClose flag as been set on creation.
type Queue ¶
type SendGrid ¶
type SendGrid struct {
ApiKey string
}
SendGrid is a passerelle to Sendgrid API. It holds the application API Key.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package grpc provides the actual logic for posting emails to queue or to mail servers
|
Package grpc provides the actual logic for posting emails to queue or to mail servers |
Package lang provides i18n strings for mailer-related data.
|
Package lang provides i18n strings for mailer-related data. |
Package rest exposes a simple API for posting emails
|
Package rest exposes a simple API for posting emails |
Package templates defines ready-to-use templates to send email in a nice formatting.
|
Package templates defines ready-to-use templates to send email in a nice formatting. |