Skip to content

batpool/golang-smtp-server

Repository files navigation

A SMTP Server Package With TLS

Quick Start

go get github.com/batpool/golang-smtp-server

package main

import (
	"crypto/tls"
	"errors"
	"fmt"
	"log"


	"github.com/batpool/golang-smtp-server"
)

func main() {
	handler := func(c *smtpsrv.Context) error {
		username, password, _ := c.User()
		if username != "username" || password != "satya" {
			return errors.New("invalid username or password")
		}
		return nil
	}

	cert, err := tls.LoadX509KeyPair("server.crt", "server.key")
	if err != nil {
		log.Println(err)
		return
	}

	config := &tls.Config{
		Certificates: []tls.Certificate{cert},
	}

	cfg := smtpsrv.ServerConfig{
		BannerDomain:    "mail.batpool.com",
		ListenAddr:      ":1587",
		MaxMessageBytes: 5 * 1024,
		Handler:         handler,
		TLSConfig:       config,
	}

	fmt.Println(smtpsrv.ListenAndServeTLS(&cfg))
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages