Skip to content
Snippets Groups Projects
Select Git revision
  • 993d1d2642c6d17b9fc3880fa196c81622ab33ef
  • master default protected
  • v1.23.2
  • v1.23.1
  • v1.23.0
  • v1.22.0
  • v1.21.1
  • v1.21.0
  • v1.20.3
  • v1.20.2
  • v1.20.1
  • v1.20.0
  • v1.19.4
  • v1.19.3
  • v1.19.2
  • v1.19.1
  • v1.19.0
  • v1.18.2
  • v1.18.1
  • v1.18.0
  • v1.17.0
  • v1.16.1
22 results

runnable-mail.go

Blame
  • runnable-mail.go 4.19 KiB
    // Copyright 2023 schukai GmbH
    // SPDX-License-Identifier: AGPL-3.0
    
    package jobqueue
    
    import (
    	"context"
    	"fmt"
    	"net/smtp"
    	"sync"
    )
    
    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
    }