Select Git revision
-
Volker Schukai authoredVolker Schukai authored
This project manages its dependencies using Go Modules.
Learn more
runnable-mail.go 3.71 KiB
package jobqueue
import (
"context"
"fmt"
"net/smtp"
)
func NewMailRunnableFromMap(data map[string]interface{}) (*MailRunnable, error) {
to, ok := data["to"].(string)
if !ok {
return nil, fmt.Errorf("%w: Invalid To: %v", ErrInvalidData, data["to"])
}
from, ok := data["from"].(string)
if !ok {
return nil, fmt.Errorf("%w: Invalid From: %v", ErrInvalidData, data["from"])
}
subject, ok := data["subject"].(string)
if !ok {
return nil, fmt.Errorf("%w: Invalid Subject: %v", ErrInvalidData, data["subject"])
}
body, ok := data["l"].(string)
if !ok {
return nil, fmt.Errorf("%w: Invalid Body: %v", ErrInvalidData, data["body"])
}
server, ok := data["server"].(string)
if !ok {
return nil, fmt.Errorf("%w: Invalid Server: %v", ErrInvalidData, data["server"])
}
port, ok := data["port"].(string)
if !ok {
return nil, fmt.Errorf("%w: Invalid Port: %v", ErrInvalidData, data["port"])
}
username, ok := data["username"].(string)
if !ok {
return nil, fmt.Errorf("%w: Invalid Username: %v", ErrInvalidData, data["username"])
}
password, ok := data["password"].(string)
if !ok {
return nil, fmt.Errorf("%w: Invalid Password: %v", ErrInvalidData, data["password"])
}
headers, ok := data["headers"].(map[string]string)
if !ok {
return nil, fmt.Errorf("%w: Invalid Headers: %v", ErrInvalidData, data["headers"])
}
return &MailRunnable{
To: to,
From: from,
Subject: subject,
Body: body,
Server: server,
Port: port,
Username: username,
Password: password,
Headers: headers,
}, nil
}
// MailResult is a result of a email
type MailResult struct {
Sent bool