mailSender

package module
v0.0.0-...-36ac1ab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 15, 2019 License: MIT Imports: 10 Imported by: 1

README

MailSender

package main

import (
	"html/template"

	"github.com/mylockerteam/mailSender"
	"gopkg.in/gomail.v2"
)

const ess = "<your ess in format host:port;username;password>"

func GetMailSender() mailSender.AsyncSender {
	return mailSender.Create(&mailSender.Sender{
		Channel: make(chan mailSender.Message, 1),
		Closer:  mailSender.GetCloser(gomail.NewDialer(mailSender.ParseEss(ess))),
	})
}

func main() {
	sender := GetMailSender()
	m := gomail.NewMessage()
	tpl, _ := template.New("test").Parse("<div>Hi, {{ .Name }}!</div>")
	m.SetHeader("From", "Example <no-reply@example.com>")
	m.SetHeader("Bcc", "<test@example.com>")
	m.SetHeader("Subject", "Hello!")
	sender.SendAsync(mailSender.Message{
		Message:  m,
		Template: tpl,
		Data:     mailSender.EmailData{"Name": "Tester"},
	})
	// ...
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetCloser

func GetCloser(d GomailDealer) gomail.SendCloser

func ParseEss

func ParseEss(ess string) (host string, port int, username string, password string)

Types

type AsyncSender

type AsyncSender interface {
	SendAsync(message Message)
}

func Create

func Create(s *Sender) AsyncSender

Create method expects Email Sender Server parameter in format %s:%s;%s;%s

type EmailData

type EmailData map[interface{}]interface{}

type GomailDealer

type GomailDealer interface {
	Dial() (gomail.SendCloser, error)
}

type GomailSender

type GomailSender interface {
	Send(s gomail.Sender, msg ...*gomail.Message) error
}

type Message

type Message struct {
	Message  *gomail.Message
	Template *template.Template
	Data     EmailData
}

type Sender

type Sender struct {
	Channel chan Message
	Closer  gomail.SendCloser
	AsyncSender
	GomailSender
}

func (*Sender) Send

func (s *Sender) Send(gSender gomail.Sender, msg ...*gomail.Message) error

func (*Sender) SendAsync

func (s *Sender) SendAsync(message Message)

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL