Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attachment ¶
type Attachment struct {
Filename string // Filename to display for the attachment.
Data []byte // Raw file data.
}
Attachment represents a single email attachment.
type Client ¶
type Client interface {
Mail(from string) error
Rcpt(to string) error
Data() (io.WriteCloser, error)
Close() error
StartTLS(config *tls.Config) error
Auth(auth smtp.Auth) error
}
Client represents a low-level connection to an SMTP server.
type DefaultDialer ¶
type DefaultDialer struct{}
DefaultDialer implements Dialer using the standard net/smtp package.
type Dialer ¶
type Dialer interface {
// Dial connects to the SMTP server at the specified address.
//
// Parameters:
// - addr: The address of the SMTP server (e.g. "smtp.example.com:587").
//
// Returns:
// - Client: An established SMTP client.
// - error: If the connection cannot be established.
Dial(addr string) (Client, error)
}
Dialer establishes SMTP connections for sending messages.
type MailClient ¶
type MailClient struct {
SMTPConfig SMTPConfig // SMTPConfig holds connection and authentication settings.
Dialer Dialer // Dialer provides SMTP connections.
}
MailClient sends email messages using SMTP.
func New ¶
func New(cfg SMTPConfig) *MailClient
New returns a new MailClient with the given SMTP settings.
Parameters:
- cfg: The SMTPConfig specifying connection and authentication details.
Returns:
- *MailClient: A configured MailClient ready to send messages.
func (*MailClient) Send ¶
func (c *MailClient) Send(ctx context.Context, msg Message) error
Send sends the given email message using the configured SMTP settings.
Parameters:
- ctx: A context to manage cancellation and timeout.
- msg: The email Message to send.
Returns:
- error: If sending the message fails at any stage.
type Message ¶
type Message struct {
To []string `yaml:"to,omitempty"` // Recipient email addresses.
Cc []string `yaml:"cc,omitempty"` // CC recipient email addresses.
Bcc []string `yaml:"bcc,omitempty"` // BCC recipient email addresses.
IsHTML bool `yaml:"isHTML,omitempty"` // Whether the body is HTML formatted.
Subject string `yaml:"subject,omitempty"` // Subject of the email.
Body string `yaml:"body,omitempty"` // Body content of the email.
Attachments []Attachment `yaml:"attachments,omitempty"` // Optional file attachments.
}
Message represents an email to be sent.
type SMTPConfig ¶
type SMTPConfig struct {
Host string `yaml:"host,omitempty"` // SMTP server hostname.
Port int `yaml:"port,omitempty"` // SMTP server port.
From string `yaml:"from,omitempty"` // Sender email address.
Username string `yaml:"username,omitempty"` // SMTP username.
Password string `yaml:"password,omitempty"` // SMTP password.
StartTLS *bool `yaml:"startTLS,omitempty"` // Whether to initiate STARTTLS.
SkipInsecureVerify *bool `yaml:"skipInsecureVerify,omitempty"` // Whether to skip TLS certificate verification.
}
SMTPConfig contains connection and authentication settings for an SMTP server.
type Sender ¶
type Sender interface {
// Send sends the given message using the SMTP protocol.
//
// Parameters:
// - ctx: The context used to control timeout or cancellation.
// - msg: The Message to be sent.
//
// Returns:
// - error: If sending the message fails.
Send(ctx context.Context, msg Message) error
}
Sender defines an interface for sending email messages.
Click to show internal directories.
Click to hide internal directories.