1.1.4 • Published 7 months ago

psmailer v1.1.4

Weekly downloads
-
License
ISC
Repository
-
Last release
7 months ago

PSMailer – Die pechschwarz Mailer-API

Dies ist ein Node-Modul, welches es mit wenig Konfigurations-Aufwand ermöglicht, Daten an die Mailer-API (https://mailer.pechschwarz.io) zu senden.

Die Mailer-API ermöglicht es E-Mails über einen SMTP-Server zu senden.

Abhängigkeiten

Aktuell gibt es keine Abhängigkeiten. Grundsätzlich wird Serverseitig PHPMailer für den Versand der E-Mails verwendet. Die definierten SMTP-Daten werden durch das Modul vorgegeben.

Installation

Das Modul wird über npm installiert:

npm install psmailer

Nun müssen die Funktionen und Klassen noch importiert werden:

import { PSMailer, getFiles, getText } from "psmailer"

Klasse

Die PSMailer-Klasse beinhaltet die Hauptfunktionalität. In einer Applikation sollte die Klasse im besten Falle nur einmal erzeugt werden und in den verschiedene Komponenten, welche die Klasse nutzen, importiert werden.

const mailer = new PSMailer(options);

Optionen

Folgende Optionen stehen zur Verfügung:

NameTypBeschreibungStandard
token (Pflichtfeld)stringDen Token zu Authentifizierung.null
smtpobjectBeinhaltet die Daten des SMTP-Servers. Erwartet folgende Werte: host, username, password, secure, port. Grundsätzlich kann sich hier an den Eingstellungen von PHPMailer orientiert werden.Standard SMTP-Server
fromstring Die angezeigte Absende-Adresse.mailapi@pechschwarz.io
logo (Pflichtfeld)string Das base64 kondierte Logo (für den Header). base64 Logo (pechschwarz)
color (Pflichtfeld)stringDie Hex-Farbe der E-Mail."#171b1c"
link (Pflichtfeld)stringDer Link zur Website. "#"
imprint (Pflichtfeld)stringDer Link zum Impressum."#"
privacy (Pflichtfeld) stringDer Link zur Datenschutzerklärung. "#"
address (Pflichtfeld)stringDie Adresse für den Footer. "pechschwarz<br />Max-Planck-Straße 19<br />42277 Wuppertal"

Die Optionen werden als Objekt übergeben.

Methoden

const status = await mailer.sendMail(data);

Die Funktion sendet eine Mail ab. Es wird ein Array mit Status-Informationen zurückgegeben.

Daten

Die Methode erwartet folgende Daten:

NameTypBeschreibungVerpflichtend
subjectstringDer Betreff der E-Mail.Ja
headlinestringDie Überschrift der E-Mail.Ja
| string | Der Text der E-Mail. | Ja
buttonobject Der Button der E-Mail. Erwartet folgende Werte: title, link.Nein
mail[string] Die Empfänger-Adressen. Ja
files[FileList]Die Anhänge der E-Mail.Nein

Die Daten werden als Objekt übergeben.

Funktionen

getFiles(formData)

Die Funktion hilft dabei Datein aus input-Feldern zu extrahieren.

const files = getFiles(formData) : [FileList]

Der Parameter formData beschreibt die Formular-Felder. Diese können in der Regel über das Event gezogen werden:

function submitForm(event) {
    event.preventDefault();

    const files = getFiles(event.target.elements);
}

Die Funktion liefert ein Array bestehend aus FileList zurück.

getText(formData)

Die Funktion generiert automatisch einen Formular-Text aus den Formular-Feldern (ausgenommen sind File-Inputs). Dabei dient der name als Key und das value als Wert.

const text = getText(formData) : string

Der Parameter formData beschreibt die Formular-Felder. Diese können in der Regel über das Event gezogen werden:

function submitForm(event) {
    event.preventDefault();

    const text = getText(event.target.elements);
}

Die Funktion gibt einen String zurück.

Beispiel

Dieses Beispiel nutzt alle zur Verfügung stehende Funktionen.

"use client"

import { PSMailer, getFiles, getText } from "psmailer"

export defaut function Form(props) {
    const mailer = new PSMailer({
        token: "mytoken",
        color: "#00FFD4",
        link: "https://www.pechschwarzmedia.de/",
        imprint: "https://www.pechschwarzmedia.de/impressum/",
        privacy: "https://www.pechschwarzmedia.de/datenschutz/",
        address: "pechschwarz<br />Max-Planck-Straße 19<br />42277 Wuppertal"
    });

    async function submitForm(event) {
        event.preventDefault();

        const files = getFiles(event.target.elements);
        const text = getText(event.target.elements);

        const status = await mailer.sendMail({
            subject: "Betreff",
            headline: "Überschrift",
            text: text,
            button: {
                title: "Klick mich!",
                link: "#"
            },
            mail: ["info@pechschwarzmedia.de"],
            files: files
        });

        console.log(status);
    }

    return (
        <form onSubmit={(event) => {submitForm(event)}} method="POST">
            <select name="Geschlecht">
                <option value="Herr">Herr</option>
                <option value="Frau">Frau</option>
                <option value="Divers">Divers</option>
            </select>
            <input type="text" name="Vorname" placeholder="Vorname*" required />
            <input type="text" name="Nachname" placeholder="Nachname*" required />
            <input type="text" name="Adresse" placeholder="Adresse" />
            <input type="file" multiple />
            <input type="file" />
            <button type="submit">Absenden</button>
        </form>
    )
}
1.1.4

7 months ago

1.1.3

7 months ago

1.1.2

7 months ago

1.1.1

7 months ago

1.1.0

7 months ago

1.0.0

7 months ago