added notification emails for newsletter confirmation and unsubscription
This commit is contained in:
parent
64345dbcd0
commit
74be45851e
@ -1,49 +1,48 @@
|
|||||||
---
|
---
|
||||||
title: Nachricht versandt
|
title: Kleines Dankeschön
|
||||||
date: 2025-02-04 10:20
|
date: 2025-02-04 10:20
|
||||||
author: Tobias Radloff
|
author: Tobias Radloff
|
||||||
summary: Danke für deine Nachricht.
|
summary: Danke für deine Nachricht.
|
||||||
lang: de
|
lang: de
|
||||||
slug: danke
|
slug: danke
|
||||||
save_as: kontakt/danke/index.html
|
save_as: newsletter/danke.html
|
||||||
url: kontakt/danke/
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Danke für deine Nachricht. Ich antworte bestimmt bald. Und bis es soweit ist, kannst du dich an diesem Gedicht von mir erfreuen :-)
|
Klasse, dass du dich für meinen Newsletter angemeldet hast. Als kleines Dankeschön und um die Wartezeit auf die nächste Ausgabe zu verkürzen, ist hier ein bislang unveröffentlichtes Gedicht von mir. Viel Spaß :-)
|
||||||
|
|
||||||
## Handwerk
|
> ## Handwerk
|
||||||
|
>
|
||||||
Dichter, Autor, Mann der Worte
|
> Dichter, Autor, Mann der Worte
|
||||||
so werd ich genannt
|
> so werd ich genannt
|
||||||
doch nicht nur mein Geist ist fleißig,
|
> doch nicht nur mein Geist ist fleißig,
|
||||||
nein, auch meine Hand.
|
> nein, auch meine Hand.
|
||||||
|
>
|
||||||
Vor Schmutz unter den Fingernägeln
|
> Vor Schmutz unter den Fingernägeln
|
||||||
schreck ich nicht zurück
|
> schreck ich nicht zurück
|
||||||
ein echter Mann wie ich, der hat
|
> ein echter Mann wie ich, der hat
|
||||||
handwerkliches Geschick.
|
> handwerkliches Geschick.
|
||||||
|
>
|
||||||
Ich freu mich, wenn es gilt, ein Löch-
|
> Ich freu mich, wenn es gilt, ein Löch-
|
||||||
lein in die Wand zu bohr'n
|
> lein in die Wand zu bohr'n
|
||||||
denn jedes Mal treff ich mit Verve
|
> denn jedes Mal treff ich mit Verve
|
||||||
genau ins Wasserrohr.
|
> genau ins Wasserrohr.
|
||||||
|
>
|
||||||
Die Muttern an den Autorädern
|
> Die Muttern an den Autorädern
|
||||||
zieh ich selber nach
|
> zieh ich selber nach
|
||||||
klemm' mir dabei den Ischias
|
> klemm' mir dabei den Ischias
|
||||||
und lieg' drei Wochen flach.
|
> und lieg' drei Wochen flach.
|
||||||
|
>
|
||||||
Ich bau IKEA-Möbel auf
|
> Ich bau IKEA-Möbel auf
|
||||||
die Schwerkraft baut sie ab
|
> die Schwerkraft baut sie ab
|
||||||
beim Umzug helf ich freudig mit
|
> beim Umzug helf ich freudig mit
|
||||||
und mach als erster schlapp.
|
> und mach als erster schlapp.
|
||||||
|
>
|
||||||
Die Waschmaschine ist kaputt?
|
> Die Waschmaschine ist kaputt?
|
||||||
Ich kümmere mich drum
|
> Ich kümmere mich drum
|
||||||
wofür, wenn nicht für Wasserschäden,
|
> wofür, wenn nicht für Wasserschäden,
|
||||||
gibt's Versicherung'n?
|
> gibt's Versicherung'n?
|
||||||
|
>
|
||||||
Doch neuerdings werd ich nicht mehr
|
> Doch neuerdings werd ich nicht mehr
|
||||||
gefragt in Handwerksfragen
|
> gefragt in Handwerksfragen
|
||||||
So bleibt mir nur ein Handwerk noch:
|
> So bleibt mir nur ein Handwerk noch:
|
||||||
Gedichte aufzusagen.
|
> Gedichte aufzusagen.
|
||||||
@ -1,8 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: "Das lief richtig gut :-)"
|
title: "Das hat geklappt"
|
||||||
date: 2025-03-04 23:19
|
date: 2025-03-04 23:19
|
||||||
author: Tobias Radloff
|
author: Tobias Radloff
|
||||||
summary: Erfolg auf der ganzen Linie
|
summary: Ein Arbeitsschritt wurde erfolgreich bewältigt.
|
||||||
lang: de
|
lang: de
|
||||||
slug: success
|
slug: success
|
||||||
save_as: success.html
|
save_as: success.html
|
||||||
@ -12,8 +12,6 @@ featured_image:
|
|||||||
credit: Ian Stauffer on Unsplash.com
|
credit: Ian Stauffer on Unsplash.com
|
||||||
---
|
---
|
||||||
|
|
||||||
Na, das lief doch mal richtig gut. Erfolg auf der ganzen Linie, würde ich sagen. So soll es sein, und so bleibt es hoffentlich auch.
|
|
||||||
|
|
||||||
<script src="{static}/js/Message.js"></script>
|
<script src="{static}/js/Message.js"></script>
|
||||||
|
|
||||||
[← zur Startseite](/)
|
[← zur Startseite](/)
|
||||||
|
|||||||
@ -3,10 +3,17 @@
|
|||||||
|
|
||||||
require(dirname(__FILE__) . '/../settings.php');
|
require(dirname(__FILE__) . '/../settings.php');
|
||||||
|
|
||||||
$successURL = '/confirmed.html';
|
$successURL = '/newsletter/danke.html';
|
||||||
$errorURL = '/error.html';
|
$errorURL = '/error.html';
|
||||||
$err = 'Bestätigung fehlgeschlagen';
|
$err = 'Bestätigung fehlgeschlagen';
|
||||||
|
|
||||||
|
// contents of notification email
|
||||||
|
$mailContents = [
|
||||||
|
'subject' => 'Neuer Newsletter-Abonnent',
|
||||||
|
'bodyText' => "Jemand hat seine Emailadresse für den Empfang des Newsletters bestätigt:\n\n%Placeholder%",
|
||||||
|
'fromAddress' => '***REMOVED***', // 'newsletter@tobias-radloff.de'
|
||||||
|
'fromName' => 'Tobias Radloff'
|
||||||
|
];
|
||||||
|
|
||||||
// Adds new subscriber to database. Returns an error message on failure, TRUE on success.
|
// Adds new subscriber to database. Returns an error message on failure, TRUE on success.
|
||||||
function AddSubscriberToDB($subscriberAddress, $subscriberName = NULL) {
|
function AddSubscriberToDB($subscriberAddress, $subscriberName = NULL) {
|
||||||
@ -22,7 +29,6 @@ function AddSubscriberToDB($subscriberAddress, $subscriberName = NULL) {
|
|||||||
global $general;
|
global $general;
|
||||||
$query = $pdo->prepare($general['sql']['create_record']);
|
$query = $pdo->prepare($general['sql']['create_record']);
|
||||||
if ( ( ! $query->execute([':e' => $subscriberAddress, ':n' => $subscriberName]) ) or ( $query->fetch() ) ) {
|
if ( ( ! $query->execute([':e' => $subscriberAddress, ':n' => $subscriberName]) ) or ( $query->fetch() ) ) {
|
||||||
// error_log("Datenbankfehler: Einfügen von Emailadresse {$subscriberAddress} ergab einen Fehler.");
|
|
||||||
return 'Fehler beim Eintragen in die Datenbank';
|
return 'Fehler beim Eintragen in die Datenbank';
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -52,5 +58,7 @@ try {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// success
|
// success
|
||||||
GracefulExit($successURL, 'Bestätigung erfolgt: Newsletter-Anmeldung bestätigt');
|
$mailContents['bodyText'] = str_replace('%Placeholder%', $e, $mailContents['bodyText']);
|
||||||
|
SendEmail($general['notificationAddress'], $mailContents);
|
||||||
|
GracefulExit($successURL);
|
||||||
?>
|
?>
|
||||||
@ -27,7 +27,7 @@ $mailContents = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
sendEmail($_POST['email'], $mailContents);
|
SendEmail($_POST['email'], $mailContents);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
GracefulExit($errorURL, "{$err}: {$e->getMessage()}");
|
GracefulExit($errorURL, "{$err}: {$e->getMessage()}");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,8 @@ $general = [
|
|||||||
'read_record' => 'SELECT 1 FROM subscribers WHERE email = :e;',
|
'read_record' => 'SELECT 1 FROM subscribers WHERE email = :e;',
|
||||||
'update_record' => '',
|
'update_record' => '',
|
||||||
'delete_record' => 'DELETE FROM subscribers WHERE email = :e;'
|
'delete_record' => 'DELETE FROM subscribers WHERE email = :e;'
|
||||||
]
|
],
|
||||||
|
'notificationAddress' => 'webseite@tobias-radloff.de'
|
||||||
];
|
];
|
||||||
// complete site URL
|
// complete site URL
|
||||||
$general['siteURL'] = 'https://' . $general['domain'];
|
$general['siteURL'] = 'https://' . $general['domain'];
|
||||||
|
|||||||
@ -8,7 +8,7 @@ $errorURL = '/error.html';
|
|||||||
$err = 'Anmeldung fehlgeschlagen';
|
$err = 'Anmeldung fehlgeschlagen';
|
||||||
|
|
||||||
// body template for confirmation email
|
// body template for confirmation email
|
||||||
$bodyConfirmation = [
|
$body = [
|
||||||
'Hallo!',
|
'Hallo!',
|
||||||
'Bitte bestätige die Anmeldung für meinen Newsletter, indem du auf den folgenden Link klickst:',
|
'Bitte bestätige die Anmeldung für meinen Newsletter, indem du auf den folgenden Link klickst:',
|
||||||
'%Placeholder%',
|
'%Placeholder%',
|
||||||
@ -16,10 +16,10 @@ $bodyConfirmation = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
// contents of confirmation email
|
// contents of confirmation email
|
||||||
$mailConfirmation = [
|
$mailContents = [
|
||||||
'subject' => 'Newsletter-Anmeldung bestaetigen',
|
'subject' => 'Newsletter-Anmeldung bestaetigen',
|
||||||
'bodyHTML' => '<p>' . implode('</p><p>', $bodyConfirmation) . '</p>',
|
'bodyHTML' => '<p>' . implode('</p><p>', $body) . '</p>',
|
||||||
'bodyText' => implode("\n\n", $bodyConfirmation),
|
'bodyText' => implode("\n\n", $body),
|
||||||
'fromAddress' => '***REMOVED***', // 'newsletter@tobias-radloff.de'
|
'fromAddress' => '***REMOVED***', // 'newsletter@tobias-radloff.de'
|
||||||
'fromName' => 'Tobias Radloffs Newsletter'
|
'fromName' => 'Tobias Radloffs Newsletter'
|
||||||
];
|
];
|
||||||
@ -48,12 +48,12 @@ try {
|
|||||||
// build and add link to
|
// build and add link to
|
||||||
$confirmQuery = http_build_query(['c' => GetConfirmationHash($email), 'e' => $email]);
|
$confirmQuery = http_build_query(['c' => GetConfirmationHash($email), 'e' => $email]);
|
||||||
$confirmLink = $general['siteURL'] . $general['confirmScript'] . "?" . $confirmQuery;
|
$confirmLink = $general['siteURL'] . $general['confirmScript'] . "?" . $confirmQuery;
|
||||||
$mailConfirmation['bodyHTML'] = str_replace('%Placeholder%', $confirmLink, $mailConfirmation['bodyHTML']);
|
$mailContents['bodyHTML'] = str_replace('%Placeholder%', $confirmLink, $mailContents['bodyHTML']);
|
||||||
$mailConfirmation['bodyText'] = str_replace('%Placeholder%', $confirmLink, $mailConfirmation['bodyText']);
|
$mailContents['bodyText'] = str_replace('%Placeholder%', $confirmLink, $mailContents['bodyText']);
|
||||||
|
|
||||||
// send email
|
// send email
|
||||||
try {
|
try {
|
||||||
SendEmail($email, $mailConfirmation);
|
SendEmail($email, $mailContents);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
GracefulExit($errorURL, "{$err}: {$e->getMessage()}");
|
GracefulExit($errorURL, "{$err}: {$e->getMessage()}");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,15 @@ $successURL = '/success.html';
|
|||||||
$errorURL = '/error.html';
|
$errorURL = '/error.html';
|
||||||
$err = "Abmeldung fehlgeschlagen";
|
$err = "Abmeldung fehlgeschlagen";
|
||||||
|
|
||||||
|
// contents of notification email
|
||||||
|
$mailContents = [
|
||||||
|
'subject' => 'Ein Newsletter-Abonnent weniger',
|
||||||
|
'bodyText' => "Jemand hat sich vom Newsletter abgemeldet:\n\n%Placeholder%",
|
||||||
|
'fromAddress' => '***REMOVED***', // 'newsletter@tobias-radloff.de'
|
||||||
|
'fromName' => 'Tobias Radloff'
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
function RemoveSubscriberFromDB($subscriberAddress) {
|
function RemoveSubscriberFromDB($subscriberAddress) {
|
||||||
$pdo = getPDO();
|
$pdo = getPDO();
|
||||||
|
|
||||||
@ -49,5 +58,7 @@ try {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// success
|
// success
|
||||||
|
$mailContents['bodyText'] = str_replace('%Placeholder%', $e, $mailContents['bodyText']);
|
||||||
|
SendEmail($general['notificationAddress'], $mailContents);
|
||||||
GracefulExit($successURL, 'Abmeldung erfolgt: Emailadresse ist aus dem Newsletter ausgetragen');
|
GracefulExit($successURL, 'Abmeldung erfolgt: Emailadresse ist aus dem Newsletter ausgetragen');
|
||||||
?>
|
?>
|
||||||
Loading…
Reference in New Issue
Block a user