Skip to content
Snippets Groups Projects
Select Git revision
  • 8a9531cb37938f323897c2c03cd47268150c28bb
  • master default protected
  • 1.31
  • 4.38.8
  • 4.38.7
  • 4.38.6
  • 4.38.5
  • 4.38.4
  • 4.38.3
  • 4.38.2
  • 4.38.1
  • 4.38.0
  • 4.37.2
  • 4.37.1
  • 4.37.0
  • 4.36.0
  • 4.35.0
  • 4.34.1
  • 4.34.0
  • 4.33.1
  • 4.33.0
  • 4.32.2
  • 4.32.1
23 results

release.nix

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
    }