mails

package module
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2022 License: MIT Imports: 9 Imported by: 0

README

mails-go

Golang library for email sending.

Providers

List of available providers:

Usage

package main

import (
	"context"
	"time"

	"github.com/spacetab-io/configuration-structs-go/v2/configuration/mimetype"
	"github.com/spacetab-io/configuration-structs-go/v2/mailing"
	"github.com/spacetab-io/mails-go/contracts"
	"github.com/spacetab-io/mails-go/providers"
)

func main() {
	// 1. Get Provider config (with should implement mailing.MailProviderConfigInterface
	// For Example, Sendgrid Config
	sendgridCfg := mailing.SendgridConfig{
		Enabled:     true,
		Key:         "APIKey",
		SendTimeout: 5 * time.Second,
	}

	// 2. Initiate provider
	// Sendgrid provider
	sendgrid, err := providers.NewSendgrid(sendgridCfg)
	if err != nil {
		panic(err)
	}

	// 3. Prepare Message with should implement contracts.MessageInterface
	msg := contracts.Message{
		To: mailing.MailAddressList{
			{Email: "toOne@spacetab.io", Name: "To One"},
			{Email: "totwo@spacetab.io", Name: "To Two"},
		},
		MimeType: mime.TextPlain,
		Subject:  "Test email",
		Content:  []byte("test email content"),
	}

	// 4. Send message
	if err := sendgrid.Send(context.Background(), msg); err != nil {
		panic(err)
	}
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Mailing

type Mailing struct {
	// contains filtered or unexported fields
}

func NewMailingForProvider

func NewMailingForProvider(provider contracts.ProviderInterface, msgCfg mailing.MessagingConfigInterface) Mailing

func (Mailing) Send

type MockLogger

type MockLogger struct {
	// contains filtered or unexported fields
}

func NewLogger

func NewLogger(writer io.Writer) MockLogger

func (MockLogger) Print

func (m MockLogger) Print(log string)

func (MockLogger) Printf

func (m MockLogger) Printf(format string, args ...interface{})

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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