mirror of
https://github.com/hay-kot/homebox.git
synced 2025-08-02 07:40:28 +00:00
email improvements
This commit is contained in:
parent
6fd8457e5a
commit
29e30bfaba
47 changed files with 3710 additions and 95 deletions
|
@ -1,4 +1,4 @@
|
|||
// Package mailer provides a simple mailer for sending emails.
|
||||
// Package mailer provides a simple interface to send emails using SMTP.
|
||||
package mailer
|
||||
|
||||
import (
|
||||
|
@ -25,16 +25,16 @@ func (m *Mailer) server() string {
|
|||
return m.Host + ":" + strconv.Itoa(m.Port)
|
||||
}
|
||||
|
||||
func (m *Mailer) Send(msg *Message) error {
|
||||
func (m *Mailer) Send(msg Message) error {
|
||||
server := m.server()
|
||||
|
||||
header := make(map[string]string)
|
||||
header["From"] = msg.From.String()
|
||||
header["To"] = msg.To.String()
|
||||
header["Subject"] = mime.QEncoding.Encode("UTF-8", msg.Subject)
|
||||
header["MIME-Version"] = "1.0"
|
||||
header["Content-Type"] = "text/html; charset=\"utf-8\""
|
||||
header["Content-Transfer-Encoding"] = "base64"
|
||||
header := map[string]string{
|
||||
"From": m.From,
|
||||
"Subject": mime.QEncoding.Encode("UTF-8", msg.Subject),
|
||||
"MIME-Version": "1.0",
|
||||
"Content-Type": "text/html; charset=\"utf-8\"",
|
||||
"Content-Transfer-Encoding": "base64",
|
||||
}
|
||||
|
||||
message := ""
|
||||
for k, v := range header {
|
||||
|
@ -46,7 +46,7 @@ func (m *Mailer) Send(msg *Message) error {
|
|||
server,
|
||||
smtp.PlainAuth("", m.Username, m.Password, m.Host),
|
||||
m.From,
|
||||
[]string{msg.To.Address},
|
||||
msg.ToAddresses(),
|
||||
[]byte(message),
|
||||
)
|
||||
}
|
||||
|
|
|
@ -9,6 +9,10 @@ type Message struct {
|
|||
Body string
|
||||
}
|
||||
|
||||
func (m Message) ToAddresses() []string {
|
||||
return []string{m.To.Address}
|
||||
}
|
||||
|
||||
type MessageBuilder struct {
|
||||
subject string
|
||||
to mail.Address
|
||||
|
@ -20,8 +24,8 @@ func NewMessageBuilder() *MessageBuilder {
|
|||
return &MessageBuilder{}
|
||||
}
|
||||
|
||||
func (mb *MessageBuilder) Build() *Message {
|
||||
return &Message{
|
||||
func (mb *MessageBuilder) Build() Message {
|
||||
return Message{
|
||||
Subject: mb.subject,
|
||||
To: mb.to,
|
||||
From: mb.from,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue