mirror of
https://github.com/wneessen/go-mail.git
synced 2024-11-22 13:50:49 +01:00
Let's get started...
This commit is contained in:
parent
4af52c3414
commit
4dd9c1bf40
1 changed files with 58 additions and 0 deletions
58
client.go
Normal file
58
client.go
Normal file
|
@ -0,0 +1,58 @@
|
|||
package mail
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
)
|
||||
|
||||
// DefaultPort is the default connection port to the SMTP server
|
||||
const DefaultPort = 25
|
||||
|
||||
// DefaultTimeout is the default connection timeout
|
||||
const DefaultTimeout = time.Second * 30
|
||||
|
||||
// Client is the SMTP client struct
|
||||
type Client struct {
|
||||
h string // Hostname of the target SMTP server to connect to
|
||||
p int // Port of the SMTP server to connect to
|
||||
s bool // Use SSL/TLS or not
|
||||
ctx context.Context // The context for the connection handling
|
||||
}
|
||||
|
||||
// Option returns a function that can be used for grouping Client options
|
||||
type Option func(*Client)
|
||||
|
||||
// NewClient returns a new Session client object
|
||||
func NewClient(o ...Option) Client {
|
||||
c := Client{
|
||||
p: DefaultPort,
|
||||
}
|
||||
|
||||
// Override defaults with optionally provided Option functions
|
||||
for _, co := range o {
|
||||
if co == nil {
|
||||
continue
|
||||
}
|
||||
co(&c)
|
||||
}
|
||||
|
||||
return c
|
||||
}
|
||||
|
||||
// WithHost overrides the default connection port
|
||||
func WithHost(h string) Option {
|
||||
return func(c *Client) {
|
||||
c.h = h
|
||||
}
|
||||
}
|
||||
|
||||
// WithPort overrides the default connection port
|
||||
func WithPort(p int) Option {
|
||||
return func(c *Client) {
|
||||
c.p = p
|
||||
}
|
||||
}
|
||||
|
||||
func (c Client) Dial() {
|
||||
|
||||
}
|
Loading…
Reference in a new issue