prxmail

package module
v0.0.0-...-8607a7f Latest Latest
Warning

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

Go to latest
Published: May 27, 2024 License: MIT Imports: 19 Imported by: 0

README

prxmail

Very simple command-line mail sender. Mainly used to proxy mail from postfix using alias.

Documentation

Index

Constants

View Source
const (
	// ログファイルのローテーションサイズ(MB)
	LOG_MAX_SIZE = 100
	// ログファイルの保存個数
	LOG_MAX_BACKUPS = 3
)

Variables

View Source
var (
	// ホスト名が一致していない。
	ErrAuthHostMatch = errors.New("prxmail.auth.ErrAuthHostMatch")
	// PLAIN認証で認証情報を送信済みなのにさらに情報を求められた。
	ErrAuthPlainChallenge = errors.New("prxmail.auth.ErrAuthPlainChallenge")
	// LOGIN認証のサーバからの要求が不正
	ErrAuthLoginChallenge = errors.New("prxmail.auth.ErrAuthLoginChallenge")
)
View Source
var (
	// 不正なメールアドレス形式
	ErrMailAddressInvalid = errors.New("message.ErrMailAddressInvalid")
	// 送信元が空
	ErrMailFromEmpty = errors.New("message.ErrMailFromEmpty")
	// 送信先が空
	ErrMailRecipientsEmpty = errors.New("message.ErrMailRecipientsEmpty")
	// 本文が空
	ErrMailBodyEmpty = errors.New("message.ErrMailBodyEmpty")
)
View Source
var (
	// バージョン
	Version = "v0.0.1"
	// envファイルロードエラー
	ErrMainDotenvLoad = errors.New("prxmail.main.ErrMainDotenvLoad")
	// 引数解析エラー
	ErrMainArgs = errors.New("prxmail.main.ErrMainArgs")
	// ターミナルの標準入力は受け付けない
	ErrMainTermStdin = errors.New("prxmail.main.ErrMainTermStdin")
	// 標準入力読み込みエラー
	ErrMainStdinRead = errors.New("prxmail.main.ErrMainStdinRead")
	// SMTPメール送信エラー
	ErrMainSmtpSendMail = errors.New("prxmail.main.ErrMainSmtpSendMail")
)
View Source
var (
	// 実行ファイルパスが取得できない。
	ErrConfigExePath = errors.New("prxmail.config.ErrConfigExePath")
)
View Source
var (
	// ホスト名取得エラー
	ErrFlagHostname = errors.New("prxmail.flag.ErrFlagHostname")
)

Functions

func AppMain

func AppMain(revision string) (code int)

func ErrorLog

func ErrorLog(err error)

エラーの出力

func NewPlainOrLoginAuth

func NewPlainOrLoginAuth() smtp.Auth

PLAIN/LOGIN認証の初期化

func ParseFlags

func ParseFlags() error

フラグの解析

func ReadPipe

func ReadPipe() (string, error)

パイプの読み込み

func Send

func Send(mail *Mail) (err error)

メールの送信

func SetupLogger

func SetupLogger()

ログ出力先の設定

Types

type AppLogger

type AppLogger struct {
	zerolog.Logger
}

ロガー

var (
	// ロガーのインスタンス
	Logger *AppLogger
)

type Config

type Config struct {
	// コンテキスト
	Ctx context.Context
	// バージョン
	Version string
	// Gitリビジョン
	Revision string
	// 実行ファイルのパス
	ExePath string
	// ホスト
	Host string
	// ポート
	Port string
	// SASL Authユーザ
	Username string
	// SASL Authパスワード
	Password string
	// 送信元
	From string
	// 送信先
	Recipients []string
	// 件名
	Subject string
	// 本文
	Body string
	// ヘルプの表示が必要か?
	IsHelpRequested bool
	// バージョンの表示が必要か?
	IsVersionRequested bool
}

設定

func GetConfigInstance

func GetConfigInstance() *Config

設定の取得

func (*Config) EnvPath

func (c *Config) EnvPath() string

環境変数ファイルのパス

func (*Config) ExeDir

func (c *Config) ExeDir() string

実行ファイルのディレクトリ

func (*Config) HostWithPort

func (c *Config) HostWithPort() string

ポート番号付きホスト名

func (*Config) LoadExePath

func (c *Config) LoadExePath() (err error)

実行ファイルパスの設定

func (*Config) LogPassword

func (c *Config) LogPassword() string

ログ出力するパスワード

func (*Config) LogPath

func (c *Config) LogPath() string

ログファイルのパス

func (*Config) VersionInfo

func (c *Config) VersionInfo() string

バージョン情報の取得

type Mail

type Mail struct {
	Subject string // 件名
	Body    string // 本文
	// contains filtered or unexported fields
}

メール

func BuildMail

func BuildMail() (*Mail, error)

メールの組み立て

func NewMail

func NewMail() *Mail

新規メールの作成

func (*Mail) From

func (m *Mail) From() string

送信元の取得

func (*Mail) Message

func (m *Mail) Message() (string, error)

メッセージの作成

func (*Mail) Recipients

func (m *Mail) Recipients() []string

送信先の取得

func (*Mail) SetFrom

func (m *Mail) SetFrom(addr string) error

送信元の設定

func (*Mail) SetRecipients

func (m *Mail) SetRecipients(addrs ...string) error

送信先の設定

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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