master
Niels Westland 8 months ago
parent 0b45421323
commit a129c913ea

@ -17,12 +17,14 @@ func NewClient(smtpHostname string, smtpPort int, preferSTARTTLS bool) *Client {
return &Client{SMTPHostname: smtpHostname, SMTPPort: smtpPort, PreferSTARTTLS: preferSTARTTLS}
}
func (c Client) SendMail(mail *Mail) error {
func (c Client) SendMail(localName string, mail *Mail) error {
conn, err := smtp.Dial(fmt.Sprintf("%s:%d", c.SMTPHostname, c.SMTPPort))
if err != nil {
return err
}
conn.Hello(localName)
if c.PreferSTARTTLS {
if hasStartTLS, _ := conn.Extension("STARTTLS"); hasStartTLS {
err = conn.StartTLS(&tls.Config{ServerName: c.SMTPHostname})

@ -1,3 +1,3 @@
module git.nwestland.com/tools/nwmail
module github.com/developmentnha/nwmail
go 1.18
go 1.21

@ -11,8 +11,9 @@ import (
)
const (
HTMLUTF8 = "text/html; charset=utf-8"
PlainTextUTF8 = "text/plain; charset=utf-8"
HTMLUTF8 = "text/html; charset=utf-8"
PlainTextUTF8 = "text/plain; charset=utf-8"
dateFmtRFC2822 = "Mon, 02 Jan 2006 15:04:05 -0700 (MST)"
)
type Mail struct {
@ -31,7 +32,10 @@ func NewMail(sender Address) *Mail {
m.headers["Message-ID"] = m.generateMessageId()
m.headers["From"] = sender.String()
m.headers["Content-Type"] = PlainTextUTF8 //default, may be overridden
m.headers["MIME-Version"] = "1.0"
m.headers["Date"] = time.Now().Format(dateFmtRFC2822) //default, may be overridden
m.headers["Content-Type"] = PlainTextUTF8 //default, may be overridden
return m
}
@ -62,6 +66,10 @@ func (m *Mail) AddBCC(recipient Address) {
m.headers["Bcc"] += recipient.String()
}
func (m *Mail) SetDate(dateTime time.Time) {
m.headers["Date"] = dateTime.Format(dateFmtRFC2822)
}
func (m *Mail) SetSubject(subject string) {
m.headers["Subject"] = subject
}

@ -0,0 +1,17 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Testmail</title>
<style>
html {
font-family: sans-serif;
}
</style>
</head>
<body>
<h1>Testmail</h1>
<p>Dit is een testmail. Het zou gewoon moeten werken eigenlijk.</p>
</body>
</html>
Loading…
Cancel
Save