Sonntag, 11. November 2018

Shirtee-Shop für die eigene Webseite

Ein Tutorial mit dem ein Shirtee-Shop/Store in die eigene Webseite eingebunden werden kann.

Stand: 11/2018

Den folgenden PHP Code in eine Datei schreiben und diese per Kommandozeile aufrufen und dabei das Ergebnis in eine Datei schreiben. Beispiel:
[user@server ~]$ cd /path/to/the/phpcodefile/
[user@server phpcodefile]$ cd /path/to/the/phpcodefile/
[user@server phpcodefile]$ php phpcodefile.php >shirteeshop.txt
Danach das Ergebnis in der Datei in die eigene Webseite per include einbinden. Beispiel:
<?php
include __DIR__ . ("/shirteeshop.txt");
?>
Danach noch das zugehörige CSS in eine Datei schreiben und im Webseite <head> einbinden. Beispiel:
<link rel="stylesheet" type="text/css" href="shirteeshopstyle.css">

PHP Code:
1.) die URL vom Shop eintragen.
2.) die Anzahl der Shopseiten eintragen.
3.) eine Bild-Datei als "shirteebrokenimage.png" in das gleiche Verzeichnis wie die PHP Code Datei speichern.
4.) eventuell: den Namen vom Pfad für die Image-Dateien anpassen.
<?php
// YOUR SHIRTEE store URL
$shirteestoreurl = "https://www.shirtee.com/de/store/shopname/";
//
// THE LIMIT FOR STORE PAGES
$shirteestorelimitpages = "4";
//
// THE FOLDER-NAME FOR IMAGE SAVING ON YOUR WEBHOST
$shirteestoreimagesdir = "shirteeimages"; // relative path
//
// Extract the Store Name for the URL Query String
$shirteestoreurlexplode = explode("/", $shirteestoreurl);
$shirteestorename = $shirteestoreurlexplode[5];
//
$shirtee_mkdir = __DIR__ . "/" . $shirteestoreimagesdir;
if (file_exists($shirtee_mkdir)) {
$shirteestoreimagesscandir = scandir($shirtee_mkdir);
foreach (array_slice($shirteestoreimagesscandir, 2) as $unlinkshirteeimages) {
unlink($shirtee_mkdir . "/" . $unlinkshirteeimages);
}
}
//
if (!file_exists($shirteestoreimagesdir)) {
mkdir($shirteestoreimagesdir, 0755);
}
//
// The PAGES for while
$shirteestorenewarray = [];
for ($p = 1; $p <= $shirteestorelimitpages; $p++) {
//
$shirteestoreurllimitpages = $shirteestoreurl . "?p=" . $p;
//
$shirteestore = file_get_contents($shirteestoreurllimitpages);
//
if (((bool) $shirteestore === true)) {
$shirteestoreexplodeone = explode('<ul class="products-grid-campaigns products-grid products-grid--max-4-col">', $shirteestore);
$shirteestoreexplode = explode('</div></div></div></div></li></ul>', $shirteestoreexplodeone[1]);
$shirteestoreold = $shirteestoreexplode[0] . '</div></div></div></div></li>';
//
// match all img src="" in the original sourcecode
preg_match_all("/(src=(.*?) )/", $shirteestoreold, $shirteestoreimgsrcmatches, PREG_PATTERN_ORDER);
//
//
// the IMAGE for while
$shirteestoreimagesrcurlarray = [];
$shirteestorenewimagessourcepatharray = [];
for ($i = 0; $i < count($shirteestoreimgsrcmatches[2]); $i++ ) {
//
array_push($shirteestoreimagesrcurlarray, $shirteestoreimgsrcmatches[2][$i]);
//
$shirteestoreimagesrcurlpreview = urldecode(str_replace('"', '', $shirteestoreimgsrcmatches[2][$i]));
//
if (strpos($shirteestoreimgsrcmatches[2][$i], "shirtee.com/preview")) {
//
$file_get_contents_opts = array(
'http' => array(
'follow_location' => false,
'timeout' => 60,
)
);
$file_get_contents_context = stream_context_create($file_get_contents_opts);
//
if (false !== ($file_get_contents_content = @file_get_contents($shirteestoreimagesrcurlpreview, false, $file_get_contents_context))) {
//$shirteestoreimgurlpreviewcontent = $file_get_contents_content;
preg_match_all("/(content=\"0;url=(.*?)\")/", $file_get_contents_content, $shirteestoreimgsrcpreviewmatches, PREG_PATTERN_ORDER);
$shirteestoreimgsrcmatchesnew[2][$i] = $shirteestoreimgsrcpreviewmatches[2][0];
} elseif ((bool)$file_get_contents_content === false) {
// BROKEN image elseif
// extract img filename from preview-url
$shirteestoreimagesrcurlpreviewpur = urldecode(str_replace('"', '', str_replace('&s=i320', '', $shirteestoreimgsrcmatches[2][$i])));
$shirteestoreimagesrcurlpreviewpurexplode = explode("/", $shirteestoreimagesrcurlpreviewpur);
$shirteestoreimagespreviewfilenameend = end($shirteestoreimagesrcurlpreviewpurexplode);
//
// BROKEN img copy and rename to /shirteeimages
copy(__DIR__ . "/shirteebrokenimage.png", __DIR__ . "/" . $shirteestoreimagesdir . "/" . $shirteestoreimagespreviewfilenameend);
//
$shirteestoreimgsrcmatchesnew[2][$i] = $shirteestoreimagesrcurlpreviewpur;
}
}
else {
$shirteestoreimgsrcmatchesnew[2][$i] = $shirteestoreimgsrcmatches[2][$i];
}
//
// extract the img file name
$shirteestoreimagesrcurlexplode = explode("/", $shirteestoreimgsrcmatchesnew[2][$i]);
$shirteestoreimagesfilenameend = end($shirteestoreimagesrcurlexplode);
//
$shirteestoreimagesdirfilename = $shirteestoreimagesdir . "/" . $shirteestoreimagesfilenameend;
//
// create the img file
if (file_exists($shirteestoreimagesdirfilename) === false) {
if (!strpos($shirteestoreimgsrcmatchesnew[2][$i], "shirtee.com/preview")) {
$shirteestoreimagecreatefrompng = imagecreatefrompng($shirteestoreimgsrcmatchesnew[2][$i]);
imagealphablending($shirteestoreimagecreatefrompng, false);
imagesavealpha($shirteestoreimagecreatefrompng, true);
imagepng($shirteestoreimagecreatefrompng, $shirteestoreimagesdirfilename, 9, PNG_ALL_FILTERS);
}
}
//
// YOUR ABSOLUTE OR RELATIVE PATH TO THE SAVED IMAGES (for the source code <img src="...">)
$shirteestorenewimagessourcepath = '"' . "/" . $shirteestoreimagesdirfilename . '"';
array_push($shirteestorenewimagessourcepatharray, $shirteestorenewimagessourcepath);
//
}
$shirteestoreold = str_replace($shirteestoreimagesrcurlarray, $shirteestorenewimagessourcepatharray, $shirteestoreold);
//
// Extract the Shirtee Store Campaign URLs
preg_match_all("/(href=\"(.*?)\")/", $shirteestoreold, $shirteestorecampaignhrefmatches, PREG_PATTERN_ORDER);
//
// Put the URL Querystring at the campaign URLs START
$shirteestorecampaignhrefarray = [];
$shirteestorecampaignhrefnewarray = [];
$shirteestorecampaignhrefmatchesunique = array_unique($shirteestorecampaignhrefmatches[2]);
$shirteestorecampaignhrefmatchesuniquenew = array_values($shirteestorecampaignhrefmatchesunique);
//
for ($i = 0; $i < count($shirteestorecampaignhrefmatchesuniquenew); $i++ ) {
//
$shirteestorecampaignhref = $shirteestorecampaignhrefmatchesuniquenew[$i];
array_push($shirteestorecampaignhrefarray, $shirteestorecampaignhref);
//
if (strpos($shirteestorecampaignhref, "?")) {
$shirteestorecampaignhrefnew = $shirteestorecampaignhref . '&amp;shop=' . $shirteestorename;
} else {
$shirteestorecampaignhrefnew = $shirteestorecampaignhref . '?shop=' . $shirteestorename;
}
//
array_push($shirteestorecampaignhrefnewarray, $shirteestorecampaignhrefnew);
//
}
$shirteestoreold = str_replace($shirteestorecampaignhrefarray, $shirteestorecampaignhrefnewarray, $shirteestoreold);
//
//
$shirteestorenewline = preg_replace("/>\s</", ">\n<", $shirteestoreold);
$shirteestorelidiv = preg_replace("/<\/li><li/", "</div>\n\n<div", $shirteestorenewline);
$shirteestorelidiv = str_replace("<li", "\n\n<div", $shirteestorelidiv);
$shirteestorelidiv = str_replace("li>", "div>\n\n", $shirteestorelidiv);
$shirteestorenewarray[$p] = str_replace('href="', 'target="_blank" href="', $shirteestorelidiv);
//
}
//
}
//
echo '<div class="products-grid-campaigns products-grid products-grid--max-4-col">';
echo implode("", $shirteestorenewarray);
echo '</div>';
//
?>

Shirteeshop CSS:
/* Shirteeshop CSS BEGIN */
.shirteeshopdiv {
max-width: 970px;
margin: 0 auto;
text-align: center;
padding-bottom: 20px;
}
.shirteeshopheader {
font-size: 3em;
font-weight: bold;
margin-top: 20px;
margin-bottom: 20px;
}
.shirteeshopdescription {
font-size: 1.4em;
margin-bottom: 20px;
}
/* Shirteeshop Original CSS BEGIN */
.shirteeshopdiv .products-grid {
max-width: 970px;
margin: 0 auto;
padding: 0;
text-align: center;
}
.shirteeshopdiv .products-grid > li {
text-align: center;
}
.shirteeshopdiv .products-grid .item {
width: 23%;
margin: 0.5%;
display: inline-block;
}
.shirteeshopdiv .products-grid-campaigns .item {
margin-bottom: 12px;
background: #fff;
border-radius: 1px;
border: 1px solid #ccc;
-webkit-transition: transform .2s linear 0s;
-moz-transition: transform .2s linear 0s;
-o-transition: transform .2s linear 0s;
transition: transform .2s linear 0s;
z-index: 1;
vertical-align: top;
}
.shirteeshopdiv .products-grid-campaigns .product-image .product-image-zoom {
-webkit-transition: all .2s linear 0s;
-moz-transition: all .2s linear 0s;
-o-transition: all .2s linear 0s;
transition: all .2s linear 0s;
}
.shirteeshopdiv .products-grid .product-image img {
width: 100%;
height: auto;
}
.shirteeshopdiv .products-grid .product-image {
position: relative;
padding: 0;
margin: 10px;
display: block;
overflow: hidden;
width: calc(100% - 20px);
}
.shirteeshopdiv .products-grid .product-info {
position: relative;
padding-bottom: 95px;
}
.shirteeshopdiv .products-grid .product-info {
padding: 10px 18px 10px;
padding: 10px 18px 10px;
padding-bottom: 10px;
background: #f0f0f0;
border-top: 1px solid #b5b5b5;
}
.shirteeshopdiv .products-grid .product-name, .products-list .product-name {
text-transform: uppercase;
margin-bottom: 5px;
font-size: 14px;
font-family: "Raleway","Helvetica Neue",Verdana,Arial,sans-serif;
}
.shirteeshopdiv .products-grid .product-name {
font-weight: normal;
color: #000;
margin: 0 0 7px;
line-height: 1.4em;
}
.shirteeshopdiv .products-grid .product-name a {
display: block;
font-family: 'Open Sans',sans-serif;
text-transform: initial;
text-overflow: ellipsis;
text-decoration: none;
font-weight: 600;
color: #333c4e;
}
.shirteeshopdiv .products-grid .price-box-text {
display: none;
}
.shirteeshopdiv .products-grid .price-box {
margin: 7px 0;
font-family: "Helvetica Neue",Verdana,Arial,sans-serif;
}
.shirteeshopdiv .products-grid .price-box .price {
font-weight: 700;
font-family: 'Open Sans',sans-serif;
font-size: 16px;
color: #333c4e;
line-height: 22px;
}
.shirteeshopdiv .products-grid .item:hover {
-webkit-box-shadow: 0 2px 30px 0 rgba(0,0,0,.2);
box-shadow: 0 2px 30px 0 rgba(0,0,0,.2);
}
.shirteeshopdiv .products-grid .item:hover .product-image-zoom {
-webkit-transform: scale(1.4);
-moz-transform: scale(1.4);
-ms-transform: scale(1.4);
-o-transform: scale(1.4);
transform: scale(1.4);
}
.shirteeshopdiv .products-grid .item:hover .product-name {
height: auto;
white-space: normal;
}
.shirteeshopdiv .products-grid h2.product-name a:hover, h3.product-name a:hover, h4.product-name a:hover, h5.product-name a:hover, p.product-name a:hover {
color: #39c;
text-decoration: none;
}
/* Shirteeshop Original CSS END */

Keine Garantie. Keine Gewährleistung. Kein Support.
Verwendung auf eigenes Risiko.

Weiterlesen »

PHP Warning file_get_contents() best solution

PHP Warning:  file_get_contents(https://example.com/): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/virtual/blabla/test.php on line 123

There are many solutions to the problem posted on the Internet. Not all of these solutions really solve the problem. The challenge with this problem is the use of boolean (false / true).
$file_get_contents_url = "";
if (false !== ($content = @file_get_contents($file_get_contents_url))) {
// use here the filled variable $content for your code.
} elseif ($check === false) {
// here your code for "false".
} else {
// here your possible "fallback" code.
}
No guarantee. No warranty. No support.
Use at your own risk.
Weiterlesen »

Samstag, 1. September 2018

Wetterbericht mit Wunschwetter

Allgemein bekannt ist, dass Wetterberichte das Wetter maximal für 3 Tage vorhersagen können. Bei unbeständigem Wetter weniger als 3 Tage und manchmal auch nur weniger als 1 Tag. Doch was Wetterberichte zusätzlich machen ist, dass sie nicht das wahrscheinlichste Wetter vorhersagen, sondern das wahrscheinlich angenehmste Wetter. Die Wetterberichte vorhersagen nicht das wahrscheinlichste Wetter, sondern ein Wunschwetter, das kurz vor knapp auf das wahrscheinlichste Wetter korrigiert wird.

Wetterbericht mit Wunschwetter
Bilder: The people from the Tango! project. gemeinfrei.

Seitdem es mehrere Wetterberichte mit Wettervorhersagen gibt, gibt es auch Unterschiede in den Wettervorhersagen. Diese unterscheiden sich nicht nur in den Langzeitvorhersagen zwischen 4 und 16 Tagen, sondern auch in den Vorhersagen bis zu 3 Tage. In den Kurzzeitvorhersagen bis maximal 24 Stunden sind sie alle ziemlich gleich.

Die Wetterberichte haben das Problem etwas sehr unvorhersebares vorherzusagen, eben das Wetter. OK, dass es im Sommer warm und im Winter kalt ist, ist damit nicht gemeint. Die Wetterberichte sind heutzutage in der Lage das Wetter für maximal 3 Tage vorherzusagen und geben zudem Prognosen für die nächsten 16 Tage. Jeder Wetterbericht verwendet für seine Vorhersage andere Parameter, die zu unterschiedlichen Ergebnissen führen. Die Parameter, die zu den Unterschieden führen, sind nicht wettertechnische. Denn wenn alle nach dem neuesten wettertechnisch-wissenschaftlichen Stand vorhersagen würden, wären alle Wettervorhersagen gleich.

Wetterbericht mit Wunschwetter
Bild: The Norwegian Meteorological Institute. met.no.

Mit zunehmendem zeitlichen Abstand in die Zukunft wird die Toleranz des möglichen Wetters immer größer. Das ergibt einen Spielraum, der von den Wetterberichten für ihre Wettervorhersagen genutzt wird. Die Wetterberichte verwenden zusätzliche Parameter, die nichts mit der wissenschaftlichen Wettervorhersage zu tun haben - die Wetterlaune der Menschen. Ein Wetterbericht, der eher angenehmes Wetter vorhersagt ist beliebter als einer, der eher unangenehmes Wetter vorhersagt - so tickt der Mensch. Ausnahmen, wie Pessimisten, die sich in Vorhersagen mit unangenehmen Wetter, dass dann auch eintrifft, bestätigt fühlen, sowie Optimisten, die sich in Vorhersagen mit angenehmen Wetter, dass dann auch eintrifft, bestätigt fühlen, aussen vor gelassen.

Insbesondere in den Langzeitvorhersagen, aber mittlerweile auch bei unbeständigem Wetter in den 3-Tages-Vorhersagen, wird der Parameter "angenehm" verwendet. Ein zunehmend unbeständiges Wetter gelangt den Wetterberichten also zum Vorteil. Mit abnehmendem Zeitabstand wird der Parameter "angenehm" bis auf Null verkleinert. Das Verwenden des Parameters "angenehm" reduziert die Wettervorhersagen auf 24-Stunden-Vorhersagen. Bei den 3-Tages-Vorhersagen und insbesondere bei den Langzeit-Vorhersagen wird von den Wetterberichten nicht der Mittelwert der Wetter-Toleranz, und schon gar nicht die Wetter-Toleranz an sich, sondern wenn dann immer eine Wetter-Tendenz mit Toleranz oder eben ein tendenziell angenehmes Wetter vorhergesagt.

Was ein angenehmes Wetter ist, darin unterscheiden sich die Leute. Von daher haben Wetterberichte, die ein tendenziell angenehmes Wetter vorhersagen, ein Klientel, das sich durch die unterschiedlichen Wettervorhersagen unterscheidet. Die Leute in Gruppen zu unterscheiden hat zudem den Vorteil der personalisierten Werbung. Die Leute, für die ein kühles Wetter angenehm ist, sind ein Klientel für andere Produkte und Dienstleistungen als Leute, für die ein warmes Wetter angenehm ist.

Der Markt regelt das Wetter?
Der Markt regelt die Wettervorhersagen!
Weiterlesen »

HaveIBeenPwned Password Cracker

Die Website HaveIBeenPwned bietet für jeden eine Möglichkeit per Emailadresse zu checken, ob diese zusammen mit dem dazugehörigen Passwort (unverschlüsselt/ungehasht) in eine der im Internet "geleakten" Listen enthalten ist. Diese Listen wurden durch Hacker von Webseiten gedownloadet, deren Server und Software Sicherheitslücken hatten. Darunter Myspace (360 Millionen, 2009), LinkedIn (164 Millionen, 2012), Tumblr (65 Millionen, 2013), Fling.com (40 Millionen) und VK (171 Millionen, 2016). Insgesamt hat HaveIBeenPwned 517 Millionen Datensätze (Emailadresse + Passwort) vorrätig.

Die Datensätze enthalten also neben einer Zuordnung von Emailadresse-Passwort, mittels der ein Account, der diese beiden zusammenhängend verwendet, geknackt werden kann, auch eine riesige Emailadressen-Liste, mittels der Spam versendet werden kann, und auch eine riesige Passwort-Liste, mittels der Passwörter geknackt werden können.

Das Problem mit Passwortlisten: Riesige Passwortlisten sind ziemlich unnütz um einen Account auf herkömmliche Weise zu knacken, da die Software die Anzahl der Versuche eingrenzt einen Account zu knacken. Wenn dann muss sich Zugang zu Userdatenbanken verschafft werden und es muss die Verschlüsselungsmethode der Passwörter bekannt sein, die meist durch eine Generierung der Passwörter als Hashes realisiert wird. Dann werden die geleakten ungehashten Passwörter mittels der Hashmethode gehasht und mit den Hashwerten der Passwörter in der Userdatenbank verglichen. Bei einem Treffer wird dann das zugehörige ungehashte Passwort dem geleakten Datensatz mit Emailadresse zugeordnet und die Accounts geknackt.

Das Problem der Emailadressenlisten: Riesige Listen an Emailadressen sind für das Versenden von Spam ziemlich unnütz, da sie viele ungenutzte Emailadressen enthalten, deren Emails niemand mehr liest. Zudem erzeugen ungültige Emailadressen zusätzlichen Traffic via Mailer-Daemon und dergleichen. Die riesigen geleakten Emailadressenlisten müssen also gefiltert werden. Dies ist am besten zu realisieren, wenn dies die User selbst tun, via einer Webseite wie HaveIBeenPwned. Somit entstehen hochwertige Emailadresslisten für Spam, die im Darknet Höchstpreise erzielen ("filtered").

Im Sommer 2018 entschied sich Github für eine Partnerschaft (Partnership) mit HaveIBeenPwned um die Passwörter seiner User zu knacken, die in den geleakten Listen, die HaveIBeenPwned vorrätig hat, vorhanden sind. Die Userdatenbank von Github selbst wurde nach Angaben von Github nicht gehackt und geleakt. Github verspricht zwar wie jede andere Plattform, dass sie selbst die Passwörter der User nicht unverschlüsselt/ungehasht einsehen können, doch umgeht das mittels der Partnerschaft mit HaveIBeenPwned. Github hat es sich zur Aufgabe gemacht, seine User darüber zu informieren, ob ihre Passwörter in eine der Passwortlisten von HaveIBeenPwned vorhanden ist. Dabei werden nur die Passwörter geprüft, nicht der Zusammenhang Emailadresse-Passwort. Damit entschlüsselt/enthasht Github die Passwörter seiner User, wenn diese in einer der HaveIBeenPwned-Passwortlisten vorhanden sind, auch wenn der User nie einen Account bei einer der Plattformen der geleakten Listen hatte. Freundlicherweise informiert Github die User darüber, wenn dem so ist, und legitimiert sich das als Dienst im Namen der Sicherheit. Die Idee dahinter: Die User sollen keine Passwörter verwenden, die in einer der geleakten Listen sind. Das sind viele Millionen Passwörter, die nicht mehr verwendet werden sollen.

Das Github-Problem: Github enthasht die Passwörter seiner User nicht im Zusammenhang mit den Emailadressen, wie sie in den geleakten Listen vorhanden sind. Das kommt einem Knacken der Passwörter eines Hackers gleich. Github kann somit nicht mehr behaupten, dass sie die Passwörter der User nur gehasht einsehen können, da Github via HaveIBeenPwned die Passwörter seiner User knackt.

Zurzeit informiert Github seine User nur, wenn das Passwort des Users von Github-HaveIBeenPwned geknackt wurde. Möglich ist, dass diese Accounts in naher Zukunft gesperrt werden, wenn der User sein Passwort nicht ändert.

HaveIBeenPwned Github Password Cracker

Was Github will: Github will, dass seine User keine der Passwörter aus den geleakten Listen verwenden. Dazu muss Github die Passwörter seiner bereits registrierten User knacken. Zudem werden keine neuen Accounts mit einem Passwort, dass in den geleakten Listen vorhanden ist, registriert.

HaveIBeenPwned Github Password Cracker

Weiterlesen »

Dienstag, 3. Juli 2018

Affiliate Direktwerbung & DSGVO (personalisierte Anzeigen)


Die Umsetzung der DSGVO im Affiliatemarketing läuft völlig in die falsche Richtung. Affiliates (Publisher) werden von den Affiliatenetzwerkbetreibern zwar nicht zu Allein-Verantwortlichen, aber doch zu Mit-Verantwortlichen gemacht und den Affiliates (Publishern) werden dadurch von den Affiliatenetzwerkbetreibern Pflichten aufgedrückt. So ist die DSGVO nicht zu verstehen, bzw. wird völlig falsch verstanden.

Das Ganze läuft völlig aus dem Ruder, wenn es zu Ende gedacht wird. Affiliatenetzwerkbetreiber können Affiliates (Publishern) jetzt drohen, wenn sie den aufdoktrinierten Pflichten nicht nachkommen. Dabei ist es für die Affiliates (Publisher) unmöglich diese Pflichten, die eigentlich die Affiliatenetzwerkbetreiber erfüllen müssen, zu erfüllen. Affiliates (Publisher) werden verantwortlich gemacht für die Realisierung des Rechts auf Widerspruch bei Direktwerbung (direct marketing) und der Hinweispflicht auf dieses Widerspruchrechts bei Direktwerbung. Wovon die wenigsten Affiliates (Publisher) wissen, die Direktwerbung auf ihren Webeseiten einblenden.
Art. 21 DSGVO Widerspruchsrecht

(2) Werden personenbezogene Daten verarbeitet, um Direktwerbung zu betreiben, so hat die betroffene Person das Recht, jederzeit Widerspruch gegen die Verarbeitung sie betreffender personenbezogener Daten zum Zwecke derartiger Werbung einzulegen;

(4) Die betroffene Person muss spätestens zum Zeitpunkt der ersten Kommunikation mit ihr ausdrücklich auf das in den Absätzen 1 und 2 genannte Recht hingewiesen werden; dieser Hinweis hat in einer verständlichen und von anderen Informationen getrennten Form zu erfolgen.
Quelle: https://dsgvo-gesetz.de/art-21-dsgvo/

Bei Adsense Direktwerbung müssen alle Beteiligten in der Datenschutzerklärung gelistet werden, was bei Adsense Direktwerbung (personalisierte Anzeigen) an die 700 Firmen sind, die mit Anschrift und Ansprechpartner erwähnt werden müssen. Der Affiliate (Publisher) weiß nicht, welche der 700 gerade aktiv Werbung auf seinen Webseiten liefert, er kann die 700 nur in der Anzahl begrenzen, was eine Beschränkung darstellt. Auch die von Adsense angebotene Abschaltung von Personalisierten Anzeigen ist nur eine Einschränkung, die auf einen Denkfehler bezüglich der DSGVO beruht.

Nicht nur technisch, sondern auch logisch sind die Forderungen der DSGVO so nicht realisierbar, indem Affiliates (Publisher) zu Mit-Verantwortlichen gemacht werden. Einzig Verantwortlicher ist und bleibt der Affiliatenetzwerkbetreiber.

In bisherigen Lösungen werden unter anderem für ein Widerspruchsrecht Cookies eingesetzt, auch Drittanbieter-Cookies (Adcell). Wenn ein Viewer in seinem Browser Cookies und/oder Drittanbieter-Cookies nicht akzeptiert, was sein Recht ist, wird der Widerspruch nicht realisiert und der Affiliate (Publisher) soll nun dafür verantwortlich sein.

Die Affiliatenetzwerkbetreiber drücken den Affiliates (Publisher) eine "Vereinbarung zur Auftragsdatenvereinbarung" oder "Datenverarbeitungsvereinbarung" auf um die Verantwortung auf die Affiliates (Publisher) abzuwälzen (Adcell, Awin, Affili.net). Die Affiliates (Publisher) wiederum können die Pflichten gar nicht erfüllen.

Ein Widerspruch per Drittanbieter-Cookie ist nicht rechtssicher, weil diese blockiert werden können und sogar jeder Viewer ein Recht darauf hat diese zu blockieren. Hier müsste ein Recht entfernt werden, damit ein anderes realisiert werden kann, was völliger Nonsens ist. Wenn ein Affiliate (Publisher) ein Widerspruch Opt-Out per Cookie selbst programmiert, dann gilt dieses nur für seine Website und ist so kein wirklicher Widerspruch gegen Direktwerbung eines Affiliatenetzwerkbetreibers, der die personenbezogenen Daten erhebt, verarbeitet und speichert, sondern nur einer für eine Domain. Das ist so kein Widerspruch, wie er von der DSGVO verlangt wird.

Die einzig richtige Umsetzung der DSGVO ist, wenn Affiliates (Publisher) nur Vermieter von Werbefläche sind, was sie rechtlich schon immer waren, und nie mehr. Sie sind keine Mit-Verantwortlichen laut DSGVO. Sie werden nur dazu gedrängt. Ein Vermieter von Werbefläche ist nur für die Inhalte der Werbung verantwortlich, mehr nicht (also zB kein Porno).

Die einzig richtige Umsetzung der DSGVO ist, wenn »in« und »mit« der Werbung die Pflichten laut DSGVO erfüllt werden. In und mit der Werbung muss sowohl der Hinweis auf das Recht auf Widerspruch erfolgen und der Widerspruch mittels Opt-Out stattfinden können (Mit vorheriger Prüfung ob Cookies akzeptiert werden. Werden keine Cookies akzeptiert, dann keine Direktwerbung.). Nur so ist es erstens technisch rechtssicher realisierbar und zweitens logisch. Aber davor scheinen sich die Affiliatenetzwerkbetreiber zu sträuben, warum auch immer.

Die Affiliates (Publisher) müssen Widerstand zeigen, indem sie sich nicht die Pflichten der DSGVO, die von den Affiliatenetzwerkbetreibern erfüllt werden müssen, aufdrängen lassen. Hiervon ist aber leider nichts zu merken. Viel eher macht die Runde, dass alle Affiliates (Publisher) kuschen.

Ein Affiliate (Publisher) ist kein Verantwortlicher im Sinne der DSGVO. Ein Affiliate (Publisher) vermietet nur Werbefläche gegen Provision. Ein Affiliate (Publisher) hat rein gar nichts mit den Daten zu tun, die über die vermietete Werbefläche erhoben, gespeichert und verarbeitet werden. Alle Affiliates (Publisher) sind Vermieter. Affiliates (Publisher) betrifft die DSGVO, was Affiliate betrifft, rein gar nicht.

Ein Beispiel: Ein Werbeflächenvermieter im Straßenraum hat keinerlei Verantwortung darüber, dass die angezeigte Werbung das Heilmittelwerbegesetz ("Zu Risiken und Nebenwirkungen...") erfüllt. Das wäre auch völlig irre, wenn dem so wäre. Aber die Affiliates (Publisher) als Werbeflächenvermieter sollen dafür verantwortlich sein? Alles was da zurechtgesponnen wird, damit die Affiliates (Publisher) auch Verantworliche sind, sind alles Denkfehler.


Adsense OptOut Funktion:

Solange die Affiliate Netzwerk Betreiber die Pflicht zum Hinweis und Realisierung des Rechts auf Widerspruch an die Publisher weiterreichen, hilft nur, dass sich jeder Publisher selbst schützt und zumindest auf seinen Webseiten die Direktwerbung DSGVO-konform macht.

Solange die Situation uneindeutig ist, können die Adsense Code-Snippets mit JavaScript um wichtige DSGVO-bezügliche Funktionen erweitert werden. Auf der folgenden verlinkten Webseite werden 3 Möglichkeiten zur Realisierung der aufgedrückten DSGVO Pflichten angeboten:
https://www.penultima.de/opt/adsense.php




Ausschluss-Klausel: Dies ist keine Rechtsberatung. Dies ist nur eine laienhafte Mindermeinung über die Sachlage. Die hier zu empfangenden Informationen werden unter Ausschluss jeglicher Garantie und Gewährleistung angeboten. Es wird keine, bzw. es kann keine Verantwortung für die dargestellten Informationen übernommen werden. Keine Gewähr für Richtigkeit, Vollständigkeit und Aktualität.
Weiterlesen »

Samstag, 30. Juni 2018

Zecken sicher entfernen

Die milden Winter bevorteilen die Ausbreitung von Parasiten, wie Stechmücken und Zecken. Dadurch wird der Mensch öfters von Zecken, wie den Gemeinen Holzbock, gestochen (umgangssprachlich: gebissen). Am heimtückischsten sind dabei die Zecken-Larven, die nur ein Bruchteil eines Millimeters groß sind und dadurch schlecht erkennbar. Zecken-Larven sind zudem schlecht zu erkennen, wenn die Haut keine rote Entzündung am Zeckenstich (Zeckenbiss) erzeugt.


Zecke - Gemeiner Holzbock - Zecke entfernen - Zeckenzange - Zeckenkarte
Zecken in einem Leimtropfen gefangen. Der Linseneffekt der Leimtropfen vergrößert die Zecken um das 5-fache. Links eine Nymphe und rechts eine Larve.


Infos zu Zecken


Zecken sind parasitäre Milben. Hausstaubmilben sind hingegen nicht parasitär. Eine Zecken-Larve ist nur 0,5 mm groß und dadurch schlecht zu erkennen. Hausstaubmilben sind bis zu 0,5 mm groß. Zecken-Larven sind, insbesondere an schlecht einsehbaren Körperstellen, schlecht zu unterscheiden von kleinen Pigmentflecken (Pigmentnävi, Leberflecken), die eine hellbraune bis dunkelbraune oder violette bis rote Farbe haben, oder von Anginomen (Gefäßnävi, Hämangiome, kleine Wucherungen der Hautgefäße, Blutflecken, Blutschwämmchen).

Die Larven der Zecken sind das erste Stadium im Leben einer Zecke. Als nächstes Stadium folgt das Stadium der Zecken-Nymphe und danach das Stadium der adulten (geschlechtsreifen) Zecke. Das Weibchen einer adulten Zecke legt bis zu 20.000 Eier, aus denen 20.000 Zecken-Larven schlüpfen. Das Weibchen vom Gemeinen Holzbock legt bis zu 5.000 Eier. Einige Zeckenarten sterben nach dem ersten Eierlegen, andere legen bis zu sieben Mal Eier. Zecken-Larven haben nur 6 Beine und Nymphe sowie Adult haben 8 Beine.

Einige Zecken, wie der Gemeine Holzbock, sind sogenannte Lauerer-Zecken und unterscheiden sich dadurch von Jäger-Zecken. Lauerer-Zecken lauern im Gras und in Büschen auf ihre Wirte. Sie halten sich mit den hinteren Beinen fest und strecken die forderen aus, so dass sie, wenn der Wirt sie streift, an diesen hängen bleiben. Es ist allerdings auch zu beobachten, dass Lauerer-Zecken sich auf den Wirt zubewegen, wenn dieser in der Nähe verweilt. Zecken erkennen ihre Wirte an dem Austoß von Kohlendioxid (Atem) und Ammoniak (Urin) sowie Milchsäure und Buttersäure (beides Schweiß). Zecken bewegen sich mit bis zu 8 Metern pro Stunde schneller als Weinbergschnecken (4,2 m/h).

Zecken ritzen die Haut ihres Wirtes an und stechen ihren Rüssel in diese Wunde. Dies ist der sogenannte Zeckenstich, der umgangssprachlich Zeckenbiss genannt wird. Dabei geben sie Speichel mit einer Mixture aus Proteinen ab, durch die beim Wirt sowohl Entzündungsreaktion als auch Schmerzempfinden sowie Blutgerinnung unterdrückt werden. Der Speichel kann Bakterien, Viren und intrazelluläre Parasiten enthalten, die auf den Wirt übertragen werden können und die für die Zecken selbst harmlos sind.

Durch einen Zeckenstich können Erkrankungen wie Borreliose, Frühsommer-Meningoenzephalitis (FSME), Babesiose (ähnlich Malaria), Ehrlichiose, Neoehrlichiose oder Rickettsiosen sowie das Q-Fieber übertragen werden. Von den übertragbaren Krankheiten können einige tödlich sein. Im Jahr 2009 starben in Niederlande 25 Menschen an Q-Fieber. Rickettsien sind intrazelluläre Parasiten, die Krankheiten, wie Fleckfieber, Zeckenstichfieber, Rickettsienpocken, Brill-Zinsser-Krankheit, Boutonneuse-Fieber (Mittelmeer-Zeckenfleckfieber) und Rocky-Mountain-Fleckfieber, auslösen können. Deren Entdecker, Howard Taylor Ricketts (1871-1910), starb an einer Erkrankung durch Rickettsien.

Es sind bisher weltweit mehr als 850 Arten von Zecken bekannt. Der Mensch ist hauptsächlich Wirt von den Zeckenarten Gemeiner Holzbock und Taigazecke sowie auch Wirt von den Zeckenarten Hirschzecke, Igelzecke, Fuchszecke, Schafzecke, Auwaldzecke und Hundezecke sowie Fehlwirt der Zeckenart Taubenzecke, die zwar wenige Tage später daran stirbt, aber auch Krankheiten überträgt.

Einige Zeckenarten können viele Jahre ohne Nahrung überleben. Eine Art der Lederzecken kann bis zu 11 Jahre ohne Nahrung überleben. Die Wirte von Lederzecken sind unter anderem Zugvögel, was diese Nahrungspausen notwendig macht. Die Wirte von Lederzecken sind im allgemeinen Vögel, Reptilien und Menschen.

Zecke - Gemeiner Holzbock - Zecke entfernen - Zeckenzange - Zeckenkarte
Größe einer Zeckenlarve. Ein Pixel am Computer-Monitor ist zwischen 0,23 und 0,29 mm groß. Eine Zecken-Larve ist 0,5 mm groß. Der schwarze Punkt in der Grafik ist 2x2 Pixel groß, also an einem Computer-Monitor ungefähr so groß wie eine Zecken-Larve.
Smartphones haben zu unterschiedliche Pixelgrößen für eine Darstellung mittels Grafik.


Aufbau einer Zecke


Zecken bestehen hauptsächlich aus zwei Teilen, dem Capitulum (Gnathosoma, Zeckenkopf) mit dem Mundwerkzeug und dem Idiosoma mit Beinen und Blutsack. Am Zeckenkopf befindet sich ein zu Tastern ausgebildetes Beinpaar, womit Zecken eigentlich 10 Beine haben. Zudem befinden sich am Zeckenkopf die beiden Kieferklauen und der Saugrüssel, der beim Gemeinen Holzbock mit Zähnen (Wiederhaken) bestückt ist. Am Idiosoma befinden sich zwei Öffnungen für die Trachee, durch die eine Zecke atmet.
Milbe Zecke Anatomie von unten

drawing by David Walter, Invasive Mite Identification, CSU and USDA APHIS ITP


Der Zeckenstich (Zeckenbiss)


Bei einem Zeckestich wird Speichel auf die Haut aufgetragen, welcher zuerst das Schmerzempfinden unterdrückt. Dann wird mit den Kieferklauen die Haut angeritzt und dadurch sammelt sich Blut in der Wunde. Jetzt verhindert der Speichel die Blutgerinnung und die Entzündung der Wunde. Als nächstes sticht die Zecke ihren Rüssel in die Wunde (bei manchen Zeckenarten ist es nur ein hineintauchen in das angesammelte Blut) und saugt das Blut auf. Zudem klebt der Speichel die beiden Taster wie Leim an die Haut fest. Der Leim ist so fest, dass er das Vorderteil (Zeckenkopf) abtrennen kann, wenn am Hinterteil gezogen wird.

Zecken bevorzugen Körperstellen mit gut durchbluteter dünner Haut und geschützte Körperpartien. Dazu zählen unter anderem die Kniekehlen, die Leistengegenden, die Achselhöhlen, die Ohren und der Haaransatz am Hals sowie auch der Penis. Es werden allerdings auch sehr häufig alle Stellen der Beine, von den Füßen bis zur Hüfte, wahllos von Zecken gestochen. Auch die Hände und Arme sind ebenso betroffen, wenn diese Zecken berühren.


Entfernen von Zecken


Nach dem Aufenthalt in der Natur


Es ist zu beachten, dass nach einem Aufenthalt in der Natur die Zecken eventuell noch nicht zugestochen haben und sich noch in der Kleidung befinden. Wenn dem so ist, dann ist es möglich, dass die Zecken in der Nacht und am folgenden Tag in der Wohnung nach ihrem Wirt suchen und diesen dann erst einige Stunden oder Tage später stechen. Deshalb ist es ratsam die Kleidung sofort zu waschen, oder zumindest vorübergehend in einem Plastiksack luftdicht zu verpacken, der dann beim Waschen der Wäsche mit Wasser (Brauseschlauch) ausgespült wird.

Vor dem Entfernen


Es ist nicht ratsam die Zecke samt Zeckenstich-Wunde vor dem Entfernen zu desinfizieren. Krankheitserreger von Zecken werden zwar mit Desinfektionsmittel vernichtet, doch die Zecke selbst reagiert darauf wie auf einen Angriff, bei dem die Zecke vermehrt Speichel absondert und eventuell sogar ihren Darminhalt in die Wunde übergibt, womit noch mehr Krankheitserreger in die Wunde gelangen.

Da Zecken atmen, sterben diese, wenn sie keinen Sauerstoff bekommen. Bei der Entfernung einer Zecke ist es nicht ratsam, diese vorher zu töten, damit sie nach dem Entfernen schon tot ist. Das wäre zwar ratsam, denn wenn die Zecke nach dem Entfernen herunterfällt, ist sie meist schwer zu finden, doch wenn sie bereits tot ist, wäre dies nicht so schlimm. Doch das Töten der noch festgebissenen Zecke ist für die Zecke ein Angriff und deshalb ist dies zu unterlassen.

Für eine Zecke ist es ein Angriff, wenn diese vor dem Entfernen mit Öl, Zahnpasta, Klebstoff, Nagellack, Nagellackentferner oder Desinfektionsmittel betupft wird. Dadurch stirbt eine Zecke zwar innerhalb weniger Minuten, weil sie nicht mehr atmen kann, doch es gelangen möglichweise auch mehr Krankheitserreger in die Wunde.


Was nicht nachgewiesen aber möglich ist, dass Zecken auch sterben, wenn in einem See gebadet und geschwommen wird. Allerdings fallen tote Zecken, die bereits gestochen haben, wegen des Leims im Speichel und den Wiederhaken am Rüssel nicht unbedingt von alleine ab.

Während des Entfernens


Beim Entfernen der Zecke ist wegen des Festklebens des Zeckenkopfes an der Haut durch deren Speichel dringend zu beachten, dass die Zecke am Zeckenkopf angefasst/angepackt wird und nicht nur am Hinterteil gezogen wird, weil sonst der Zeckenkopf abreissen könnte. Jeder, der schon einmal eine Zecke entfernt hat, wird dieses abreissen der Zecke von der Haut kennen, das mit einem Geräusch verbunden ist. Das Geräusch ist dem Festkleben und den Widerhaken am Rüssel zu verdanken. Wird der Zeckenkopf vom Hinterteil abgerissen ist das Geräusch anders.

Der Zeckenkopf einer Zeckenlarve ist mit ca. 0,1 mm (100 µm) mit blosem Auge so gut wie nicht sichtbar.

Damit der Zeckenkopf angepackt wird, muss unter das Hinterteil gegriffen werden. Wenn die Zecke mit Fingernägeln gepackt wird, dann sollten die Fingernägel direkt über der Haut zukneifen, also fest auf die Haut gedrückt werden. Wenn die Fingernägel nicht den Zeckenkopf kneifen, sondern das Hinterteil einer Zecke, oder wenn die Zecke mit den Fingerkuppen gepackt wird, anstatt mit den Fingernägel, kann der Zeckenkopf abreissen.

Zeckenzangen (insbesondere aus Plastik, aber auch aus Metall) greifen die gesamte Zecke und nicht unbedingt nur den Zeckenkopf. Damit ist ein abreissen des Zeckenkopfs möglich.

Zeckenhaken ziehen am Hinterteil der Zecken und somit kann der Zeckenkopf abreissen.

Zeckenkarten ziehen am Hinterteil der Zecken und somit kann der Zeckenkopf abreissen.

Herkömmliche Pinzetten quetschen die komplette Zecke und ziehen am Hinterteil der Zecke, wordurch der Zeckenkopf abreissen kann.

Spezielle Zecken-Pinzetten haben Spitzen, die sehr fein auslaufen und mit denen eine Zecke nicht von oben, sondern seitlich gepackt werden kann. Dabei muss die Pinzette an der Spitze sehr fein sein (0,1 mm) und zudem fest zupacken können, damit sie nicht vom Zeckenkopf abrutscht und am Hinterteil zieht.

Eine ideale Zeckenzange greift direkt seitlich mit zwei sehr flachen Kanten direkt über der Haut von zwei Seiten (oben und unten) am Zeckenkopf zu. Dabei müssen die beiden flachen Kanten nicht zu grob sein, damit sie nicht das Hinterteil quetschen, und nicht zu fein sein, damit sie die Zecke nicht zerschneiden, was natürlich auch auf die Kraft vom Zupacken ankommt.

Nach dem Entfernen


Es ist ratsam die Zeckenstich-Wunde nach dem Entfernen der Zecke sofort zu desinfizieren. Krankheitserreger von Zecken werden mit Desinfektionsmittel vernichtet.

Die ausgerissene Zecke kann auf einem Blatt Papier mit einem Tropfen Leim konserviert werden. Falls die Zecke noch nicht tot ist, so wird sie es dann sein.
Zecken sicher entfernen - Zeckenzange - Zeckenkarte - Zecken - Gemeiner Holzbock

Zecken sicher entfernen - Zeckenzange - Zeckenkarte - Zecken - Gemeiner Holzbock

Zecken sicher entfernen - Zeckenzange - Zeckenkarte - Zecken - Gemeiner Holzbock

Dies ist keine fachärztliche Beratung, Auskunft oder Betreuung.
Bei Fragen zu Risiken und Nebenwirkungen fragen Sie einen Arzt oder Apotheker.
Weiterlesen »

Dienstag, 26. Juni 2018

CSS color transition animation

Mit der CSS Eigenschaft (Property) "transition" können HTML-Elemente animiert werden, doch die Möglichkeiten sind begrenzt. CSS transition benötigt ein auslösendes Event. Mit Javascript ist es ebenfalls möglich HTML-Elemente zu animieren, auch ohne auslösendes Event.

Die CSS Eigenschaft "transition" ist erst ab IE 10 verfügbar.
Einige der Selektoren (Selector) für auslösende Events sind erst ab IE 10 verfügbar.

Liste der Selektoren für auslösende Events bei CSS transition:

  • :hover (mouse hover, IE7) 
  • :target (link clicking, IE9)
  • :focus (IE8)
  • :valid (form fields, IE10)
  • :checked (checkboxes, IE9)
  • :active (link clicking, IE7)
  • :disabled (form fields, IE9)
  • :invalid (form fields, IE10)

Mit Javascript eröffnen sich viel mehr Möglichkeiten HTML-Elemente zu animieren. Im folgenden ein Beispiel zur Animierung von "border-color" einer div-box.

Mittels Javascript wird der Wert von "border-color" einer div-box geändert. Dazu wird der hexadezimale Farbwert (#ff0000) als RGB Farbwert (255000000) als Anfangswert genutzt. Zur Berechnung neuer Übergangswerte wird der hexadezimale Farbwert als RGB Ausgangs-Farbwert in die einzelnen Farbwerte Rot Grün Blau (255 000 000) aufgespalten. Nach der Neuberechnung der einzelnen RGB-Farbwerte werden diese zu einzelnen hexadezimalen Farbwerten umgewandelt (ff cc cc) und anschließend zu einem neuen hexadezimalen Farbwert zusammengefügt (#ffcccc).

CSS
.divborder {
  border-style: dashed;
  border-color: #ff0000;
}
HTML
<div class="divborder">CSS color transition animation</div>
<div id="divcolor"></div>
Javascript
var bordercolorr = 255;
var bordercolorgb = 0;
var bordercolorinterval = setInterval(frame, 50);
function frame() {
if (bordercolorr == 204) {
clearInterval(bordercolorinterval);
} else {
bordercolorr = bordercolorr;
bordercolorgb = bordercolorgb + 4;
if (bordercolorgb > 203) {
bordercolorr = bordercolorr - 1;
bordercolorgb = 204;
}
bordercolorrxhex = bordercolorr.toString(16);
bordercolorgbxhex = bordercolorgb.toString(16);
if (bordercolorgbxhex.length == 1) {
bordercolorgbxhex = "0" + bordercolorgbxhex;
}
document.getElementsByClassName("divborder")[0].style.borderColor = '#' + bordercolorrxhex + "" + bordercolorgbxhex + "" + bordercolorgbxhex;
document.getElementById("divcolor").innerHTML = "border-color: "+ "#" + bordercolorrxhex + "" + bordercolorgbxhex + "" + bordercolorgbxhex;
}}
JSFIDDLE:  http://jsfiddle.net/ocd3ujtb/94/

Das Javascript kann beliebig verändert und umgestaltet werden. Es ist möglich jedes HTML-Element zu animieren. Nicht nur "border-color", sondern auch "background-color" oder "color", sowie width and height oder vieles mehr.

Keine Garantie. Keine Gewähr. Kein Support.
Weiterlesen »

Dienstag, 12. Juni 2018

Rezept: Powerriegel - Energieriegel - Fitnessriegel - Müsliriegel

Für den Aktivsport ist eine schnelle Energiezufuhr sehr wichtig. Dabei sollte diese nahrhaft und schmackhaft sein und dem Körper schnell Energie zuführen, ohne eine Pause einzulegen. Eine Einkehr in ein Wirtshaus oder eine Jause kommen da eher nicht in Betracht. Bewährt ist die Energie aus einem Riegel, von denen unzählig verschiedene käuflich erwerbbar sind. Hier ein simples Basis-Rezept zum erweitern.

Rezept Powerriegel Energieriegel Fitnessriegel Müsliriegel

Als Energie ist Zucker unumlässlich. Dabei ist nicht Haushaltszucker, sondern der pure Energielieferant Glucose gemeint, der auch als Traubenzucker, Dextrose oder Bonbonsirup bekannt ist. Alle Zuckerarten werden im Körper zu Glucose aufgespalten. Umso weniger im Körper aufgespalten werden muss, umso schneller ist die Energie verfügbar. Leider hat Glucose eine sehr süße und klebrige Eigenschaft, die bei Kindern beliebt ist, doch bei Sportlern weniger.

Proteine (Eiweiße) sind während des Sports nur geeignet, wenn das Körpergewicht schon während des Sports durch Muskelmasse erhöht werden soll. Proteine liefern keine Energie. Proteine zu sich nehmen reicht nach dem Sport. Hauptsächlich zum Aufbau von übermäßiger Muskelmasse werden zusätzlich Proteine zu sich genommen. In Nahrungsmitteln mit Eiern und Milch ist genügend Protein für normalen Muskelaufbau vorhanden.

Für die schnelle Energiezufuhr während des Sports, wie beim Laufen oder während des Radfahrens, ist Maltodextrin pur bestens geeignet. Maltodextrin wird durch Hydrolyse von Stärke hergestellt. Maltodextrin pur gibt es in verschiedenen Ausführungen, die verschieden hohe Dextrose-Äquivalente besitzen. Zucker mit einem Dextrose-Äquivalent (DE, dextrose equivalent) von 3 bis 20 werden Maltodextrin genannt. Dabei hat DE 3 einen geringen Dextrose-Äquivalent und DE 20 einen hohen Dextrose-Äquivalent. DE 3 besitz weniger Glucose-Eigenschaften und DE 20 besitzt mehr Glucose-Eigenschaften, wie süß und schnelle Energiezufuhr. Maltodextrin mit hohem DE schmeckt weniger süß als Glucose, aber dafür pur sowie in Wasser etwas nach Pappe. Maltodextrin kann für die Zubereitung von Energydrinks und Energyriegeln genutzt sowie zu allen Lebensmittelzubereitungen hinzugefügt werden. Gängige Dextrose-Äquivalente sind Maltodextrin DE6, Maltodextrin DE12, Maltodextrin DE15 und Maltodextrin DE19.

Basis-Rezept

Powerriegel - Energieriegel - Fitnessriegel - Müsliriegel selber machen/backen.
Je nach Größe ca. 10 - 20 Riegel.

Basis-Zutaten:

  • 100 g Maltodextrin
  • 200 ml Wasser
  • 200 g Haferflocken zart
  • 100 g Haferflocken körnig
  • eine Handvoll Beeren (TK)
  • 100 g Mehl

Zubereitung:

  1. Maltodextrin in einer großen Schüssel mit dem Wasser mit einem Stabmixer oder Schneebesen verrühren. Wenn sich Klumpen bilden, diese mit einem Löffel zerdrücken.
  2. Die Haferflocken zart/körnig hinzufügen und mit dem Maltodextrin-Wasser verrühren,  bis alles aneinander klebt.
  3. Die Beeren, am besten tiefkühl (Heidelbeeren/Preiselbeeren/Brombeeren/Himbeeren), hinzufügen und verrühren.
  4. Das Mehl, am besten Dinkelvollkornmehl, hinzufügen und nochmals alles verrühren, bis alles eine klebrige Masse ist, die formbar ist.
  5. Ein Backblech mit Backpapier auslegen.
  6. Mit feuchten Händen aus der klebrigen Masse Riegel formen und ohne viel Abstand auf das Backblech legen. Nach jedem Riegel die Hände in Wasser säubern.

Das volle Backblech auf die mittlere Schiene in den nicht vorgeheizten Ofen (vorheizen ist Energieverschwendung) ohne Umluft bei 150°C 15 Minuten backen, oder nur 10 Minuten und die Ofentür erst öffnen, wenn der Ofen abgekühlt ist. Je nach Ofen können die Riegel verschieden hart werden, deshalb bitte selbst mit dem Backen experimentieren. Die Riegel sollten nicht zu hart werden, sondern weich sein, sowie nicht zu dunkel.

Die Riegel können in Gefrierbeuteln tiefgekühlt werden und sind so länger haltbar.

Weitere Zutaten:
Das Basis-Rezept kann beliebig erweitert werden. Es können weitere Zuckerarten und Früchte, wie zerkleinertes Trockenobst sowie Nüsse und Samen, hinzugefügt werden.

Trockenobst:

  • gerocknete Datteln
  • getrocknete Feigen
  • gerocknete Äpfel
  • gerocknete Birnen (Dörrbirnen)
  • getrocknete Aprikosen
  • getrocknete Pfirsiche
  • getrocknete Heidelbeeren
  • getrocknete Kirschen
  • getrocknete Sauerkirschen
  • getrocknete Moosbeeren
  • getrocknete Berberitzen
  • getrocknete Maulbeeren
  • getrockneter Sanddorn
  • getrocknete Weinbeeren (Rosinen)
  • Korinthen

Nüsse:

  • Haselnüsse
  • Erdnüsse
  • Walnuss
  • Macadamianuss
  • geröstete Bucheckern

Kerne:

  • Pinienkerne
  • Kürbiskerne
  • Weintraubenkerne
  • Grünkern (Grünkorn, Dinkel)
  • (Papayakerne)

Samen:

  • Sonnenblumensamen
  • Chiasamen
  • Hanfsamen
  • Mohnsamen
  • Granatapfelsamen
  • Leinsamen
  • Sesamsamen
  • Papayasamen
  • Kümmelsamen (Kümmelfrüchte)
  • Senfsamen
  • Flohsamen

Sonstiges:

  • Cashewnuss
  • Kokosnussraspel
  • Mandelsplitter
  • Pistazien
  • Paranüsse

Das Maltodextrin, also der Zucker, sorgt für die Klebrigkeit und das Mehl für die Konsistenz. Die gebackenen Riegel sind nicht klebrig. Die Riegel machen auch ein wenig satt.
Weiterlesen »

Mittwoch, 23. Mai 2018

Wordpress Kommentar-Funktion DSGVO konform

Das Anpassen der eigenen Webseite an die DSGVO (GDPR) ist viel diskutiert und doch gibt es noch nicht für alles eine adäquate Lösung. Ebenso ist es mit der Kommentarfunktion in Wordpress, wenn diese auch für nicht-registrierte Besucher zur Verfügung stehen soll. Wordpress hat dabei nur an registrierte User gedacht.

Das problematische an der Kommentarfunktion von Wordpress ist schon länger das Speichern der IP. Zudem wird nun problematisch, wenn einerseits "Name" und "Emailadresse" als Pflichtangaben angegeben werden müssen und andererseits auch ohne Pflichtangabe deren Speicherung.

Es bestehen zwei Möglichkeiten:

1. Möglichkeit) Kommentarfunktion erweitern
Es wird die Funktionalität der Kommentarfunktion um eine Datenschutzerklärung-Checkbox erweitert und an dem Speichern der Daten nichts geändert.
Wichtig: Das Speichern/Archivieren von IP, Name und Emailadresse muss mit in die Datenschutzerklärung aufgenommen werden.
Zudem kann aus Punkt 2 die Funktion zur Änderung der IP verwendet werden (ganz unten).
<?php
/**
* Author:            fcojgodoy
* License:           GPL-2.0+
* Source: https://github.com/fcojgodoy/wp-comment-policy-checkbox/blob/master/wp-comment-policy-checkbox.php
*/
// Die Checkbox einbauen
function wpcpc_custom_fields($fields) {
// Hier die URL zur Webseite der Datenschutzerklärung einfügen
$url = 'https://www.example.com/datenschutz.php';
$read_and_accept = __('Ich akzeptiere die ', 'wp-comment-policy-checkbox');
$privcay_policy = __('Datenschutzerklärung', 'wp-comment-policy-checkbox');
$fields['top_copy'] = '<small class="comment-form-policy-top-copy">' . wpautop(get_option('wpcpc_policy_top_copy')) . '</small>';
$fields['policy'] = '<p class="comment-form-policy">' . '<label for="policy" style="display:block !important"><input id="policy" name="policy" value="policy-key" class="comment-form-policy__input" type="checkbox" style="width:auto" aria-required="true">' . esc_html($read_and_accept) . '<a href="' . esc_url($url) . '" target="_blank" class="comment-form-policy__see-more-link">' . esc_html($privcay_policy) . '</a><span class="comment-form-policy__required required"> *</span></label></p>';
return $fields;
}
add_filter('comment_form_default_fields', 'wpcpc_custom_fields');
// Den Check der Checkbox einbauen
function wpcpc_verify_policy_check($policydata) {
if (!isset($_POST['policy']) && !is_user_logged_in())
wp_die( '<strong>' . __('ERROR: ') . '</strong>' . __('Du musst die Datenschutzerklärung akzeptieren.', 'wp-comment-policy-checkbox') . '<p><a href="javascript:history.back()">' . __('&laquo; Back') . '</a></p>');
return $policydata;
}
add_filter('preprocess_comment', 'wpcpc_verify_policy_check');
?>

2. Möglichkeit) Kommentarfunktion kürzen
Es wird die Funktionalität der Kommentarfunktion auf das wesentliche gekürzt und keine Daten, außer der Kommentar selbst, gespeichert.
- Dazu darf in den Einstellungen > Diskussion "Benutzer müssen zum Kommentieren Name und E-Mail-Adresse angeben" nicht als Pflichtangaben angehakt sein.
- Der Infotext (comment_notes_before) "Deine E-Mail-Adresse wird nicht veröffentlicht." über dem Kommentarfeld kann mit der function edit_comment_before entfernt/geändert/gelöscht werden.
- Die neue WP Checkbox "Meinen Namen, E-Mail und Website in diesem Browser speichern, bis ich wieder kommentiere." kann mit der function edit_comment_cookies_checkbox entfernt werden.

Empfehlenswert:
- Zudem ein reCaptcha (Plugin) verwenden und den Spamfilter aktivieren.
- Mit der function edit_comment_after einen Hinweistext für eventuelle Freigabe (bei Spamverdacht) anzeigen lassen
- Die Checkbox aus Punkt 1 einfügen kann nicht schaden.

Mittels ein paar Funktionen, die einfach in die functions.php des aktiven Themes kopiert werden können, lässt sich das Problem in den Griff bekommen. Die Funktionen sind mit Kommentaren versehen, die selbsterklärend sind. Am Ende noch ein paar SQL Befehle zur Bereinigung der Datenbank von bestehenden Daten.

Die Funktionen werden zur einfacheren Auswahl einzeln aufgelistet.

Los gehts!
<?php
// Checkbox "im Browser speichern" editieren
function edit_comment_cookies_checkbox($fields) {
$fields['cookies'] = '';
return $fields;
}
add_filter( 'comment_form_default_fields', 'edit_comment_cookies_checkbox' );
?>
<?php
// Formfield "Name" editieren. Entfernen = "Anonymous"
function edit_comment_author_field($fields) {
$fields['author'] = '';
return $fields;
}
add_filter( 'comment_form_default_fields', 'edit_comment_author_field' );
?>
<?php
// Formfield "Email" editieren
function edit_comment_email_field($fields) {
$fields['email'] = '';
return $fields;
}
add_filter( 'comment_form_default_fields', 'edit_comment_email_field' );
?>
<?php
// Formfield "Website" editieren
function edit_comment_url_field($fields) {
$fields['url'] = '';
return $fields;
}
add_filter( 'comment_form_default_fields', 'edit_comment_url_field' );
?>
<?php
// comment-notes über dem Kommentarfeld editieren.
function edit_comment_before($defaults) {
$defaults['comment_notes_before'] = '';
return $defaults;
}
add_filter( 'comment_form_defaults', 'edit_comment_before' );
?>
<?php
// comment-notes unter dem Kommentarfeld editieren.
function edit_comment_after($defaults) {
$defaults['comment_notes_after'] = '<p class="comment-notes">' . __( 'Dein Kommentar muss eventuell erst noch freigegeben werden.' ) . ( $req ? $required_text : '' ) . '</p>';
return $defaults;
}
add_filter( 'comment_form_defaults', 'edit_comment_after' );
?>
<?php
// "IP" editieren
function edit_comment_ip()

 return "127.0.0.1"; // localhost
}
add_filter( 'pre_comment_user_ip', 'edit_comment_ip', 50);
?>
<?php
// Author "Name" editieren
function edit_comment_author_name()
{
return "Gast";
}
add_filter( 'pre_comment_author_name', 'edit_comment_author_name', 50);
?>
Zum Ausblenden der Namen der Kommentar-Autoren im Gästebuch dieses CSS in die style.css des aktiven (child) Themes einfügen:
cite.comment-author {
display: none !important;
Die SQL Befehle zum bereinigen der Datenbank von vorhandenen Daten aus der Kommentarfunktion. Bitte einzeln verwenden.
VORSICHT: Löschbefehle! Besser vorher die Datenbanktabelle "kopieren" zur Wiederherstellung.
UPDATE `wp_comments` SET `comment_author_IP`='127.0.0.1'
UPDATE `wp_comments` SET `comment_author_email`=''
UPDATE `wp_comments` SET `comment_author_url`=''
UPDATE `wp_comments` SET `comment_author`='Gast'
Mehr Informationen zu den default-Werten der functions auf der comment_form Wordpress-Codex-Seite: https://codex.wordpress.org/Function_Reference/comment_form

Dies ist keine Rechtsberatung.
Keine Garantie. Keine Gewähr. Kein Support.
Weiterlesen »

Samstag, 31. März 2018

Uberspace Email - Qmail - Vmail

Uberspace bietet in seinem Webhost-System auch ein Email-System. In dem Uberspace Email-System besteht eine default-Emailadresse mit einem default-Email-Postfach. Zudem kann QMail und VMail als Erweiterung des Email-Systems genutzt werden. Wie, das wird im folgenden Tutorial erklärt.

Uberspace-default

Uberspace-default-Emailadresse
Die Uberspace-default-Emailadresse setzt sich wie folgt zusammen:
user@server.uberspace.de
Mit der Verwendung einer eigenen Domain:
user@example.com

Uberspace-default-Email-Postfach
Das Uberspace-default-Email-Postfach befindet sich im Verzeichnis:
/home/user/Maildir/

Uberspace-default-Email-Passwort
Das Uberspace-default-Email-Passwort ist zugleich das SSH-Passwort (u.a. für SFTP-Zugang).

Unterschied QMail - VMail

QMail:
  • Mit QMail können beliebig viele Alias-Emailadressen angelegt werden.
  • Mit QMail werden alle Emails in einem Verzeichnis/Postfach gespeichert.
  • Bei QMail muss immer auch das SSH-Passwort verwendet werden.


VMail:
  • Mit VMail können beliebig viele separate Email-Postfächer angelegt werden.
  • Für jedes VMail-Postfach können über QMail beliebig viele Alias-Emailadressen angelegt werden.
  • Jedes VMail-Postfach hat sein eigenes Passwort, das nach belieben geändert werden kann.

Informationen

Die default-Voreinstellungen eines Uberspace-Accounts machen die Erklärung etwas schwierig, da schon eine Konfiguration besteht. Das Tutorial beginnt nicht mit Uberspace-Grundeinstellungen, sondern ohne diese, also sozusagen blank. Der Unterschied zu den Uberspace-Grundeinstellungen wird jeweils in eckigen Klammern erwähnt.

Uberspace nutzt für Emails QMail und VMail.
Für die Verwendung der Uberspace-default-Emailadresse mit Uberspace-default-Email-Postfach sind keine QMail .qmail... Dateien und kein VMail notwendig. Einige dieser .qmail... Dateien sind in der Uberspace-Grundkonfiguration schon vorhanden. Sie könnten auch gelöscht werden, was nicht zu empfehlen ist.

Alle ausgeführten Konfigurationen benötigen bis zu 5 Minuten, bis sie wirksam werden.

Die Zeilen mit den Pfeilen "->" dürfen/sollen/müssen nicht in die .qmail-... Dateien geschrieben werden.

QMail

Alle eingehenden Emails werden zuerst von QMail verarbeitet.
QMail extrahiert zuerst den Email-Namen vor dem "@" und setzt bei allen eingehenden Emailadressen, die keine Uberspace-default-Emailadresse sind, den Usernamen "user" mit Bindestrich "-" vorne an. Dann fügt QMail automatisch den Hostnamen "@server.uberspace.de" an, wenn nicht schon vorhanden.
alias@example.com
user-alias@example.com
-> .qmail-alias "user-info"
user-info@server.uberspace.de


Die QMail .qmail Datei

[keine .qmail-default Datei]
[keine .qmail-... Dateien]
Mit einer .qmail, bzw. deren Inhalt, können alle Emails, die an die Uberspace-default-Emailadresse gesendet werden, an eine externe Emailadresse weitergeleitet werden.
.qmail externe@example.com
-> externe@example.com

QMail-Emailadressen

Die QMail .qmail-... Dateien
[keine .qmail-default Datei]
[keine .qmail Datei]
Mit .qmail-... Dateien im Verzeichnis /home/user/ können beliebig viele (weitere) Email-Adressen angelegt werden.
Die .qmail-... Dateien sind einfache Textdateien.
Diese QMail-Emailadressen sind wie folgt zusammengesetzt:
.qmail-name
name@user.server.uberspace.de
user-name@server.uberspace.de
name@example.com
Ab U7: name@user.uber.space (nicht: user-name@uber.space)
In den Emailadressen muss entweder der Uberspace-Username oder eine eigene Domain vorkommen, damit diese zugewiesen werden können.

Wenn die Emails dieser QMail-Emailadressen in dem Uberspace-default-Email-Postfach gespeichert werden sollen, dann muss in den .qmail-... Dateien der Username eingetragen werden.
.qmail-name user
-> /home/user/Maildir/

Wenn die Emails dieser QMail-Emailadressen an eine externe Email-Adresse weitergeleitet werden sollen, dann muss in den .qmail-... Dateien die externe Emailadresse eingetragen werden.
.qmail-name externe@example.com
-> externe@example.com

Info: Jede .qmail-... Datei funktioniert autonom.

Bei Emailadressen, für die keine .qmail-... Datei existiert, wird von QMail eine "failure notice" zurückgesendet.

Wenn eine dieser QMail-Emailadressen gelöscht werden soll, dann einfach die entsprechende .qmail-... Datei löschen. Dann wird bei Emails an diese Emailadresse von QMail eine "failure notice" zurückgesendet. Wenn das unerwünscht ist, dann kann in die .qmail-... Datei eine Raute "#" eingetragen werden. Mit einer # werden die Emails an /dev/null/ weitergeleitet, also unwideruflich gelöscht und ohne eine "failure notice" oder ähnlich zurückzusenden.
.qmail-name #
-> /dev/null/


Die QMail .qmail Datei
[keine .qmail-default Datei]
[eine oder mehrere .qmail-... Dateien]
Mit der .qmail, bzw. deren Inhalt, können alle .qmail-... Datei Emailadressen mit nur einem Eintrag an eine externe Emailadresse gesendet werden,
.qmail externe@example.com
-> externe@example.com
[.qmail-default |/usr/bin/vdeliver]
[eine oder mehrere .qmail-... Dateien]oder in einem bestehenden VMail-Postfach gespeichert werden. Dazu das Kürzel Username-Postfachname verwenden, oder den Pfad zum VMail-Postfach.
.qmail user-postfach
-> /home/user/users/postfach/
oder
.qmail ./users/postfach/
-> /home/user/users/postfach/
Dabei werden auch immer alle Emails, die an die Uberspace-default-Emailadresse gesendet werden, an diese externe Emailadresse weitergeleitet oder in dem VMail-Postfach gespeichert.


Die QMail .qmail-default Datei
Mit der .qmail-default Datei, bzw. deren Inhalt, werden alle Emailadressen abgefangen, für die es keine .qmail-... Datei Emailadresse gibt, also keine QMail-Emailadresse gibt. Bei der .qmail-default Datei landen also Emails von allen möglichen Emailadressen außer den QMail-Emailadressen.
In die .qmail-default Datei kann eine externe Emailadresse eingetragen werden, damit diese "alle weiteren möglichen" Emailadressen dorthin weitergeleitet werden. Normalerweise braucht das kein Mensch.
.qmail-default externe@example.com
-> externe@example.com
Oder die Emails an diese "alle weiteren möglichen" Emailadressen sollen keine "failure notice" zurückgeben, sondern still nach "/dev/null/" verschwinden und unwiderruflich gelöscht werden.
.qmail-default #
-> /dev/null/
Wenn aber VMail genutzt werden will, dann muss in die .qmail-default Datei der Pfad zu VMail "|/usr/bin/vdeliver" eingetragen werden. Das "|" bedeutet, dass es ein Pfad zu einem Programm ist.
.qmail-default |/usr/bin/vdeliver
-> VMail
Damit werden "alle weiteren möglichen" Emailadressen, für die es keine QMail-Emailadresse gibt, an VMail weitergeleitet und von VMail verarbeitet. Gibt es zu diesen von QMail an VMail geleiteten Emailadressen kein VMail-Emailpostfach, dann sendet VMail ein "failure notice" oder ähnlich.

VMail

Die VMail-Postfächer befinden sich im Pfad:
/home/user/users/
Der Name eines VMail-Postfaches ist zugleich der VMail-Emailadresse-Name.
/home/user/users/postfach/
postfach@user.server.uberspace.de
user-postfach@server.uberspace.de
postfach@example.com
Ab U7: postfach@user.uber.space (nicht: user-postfach@uber.space)


VMail-Emailadressen und VMail-Postfächer

Einzelheiten zum erstellen von VMail-Emailadressen mit VMail-Postfächern sind dem Wiki (U6) oder Manual (U7) bei Uberspace zu entnehmen.
[.qmail-default |/usr/bin/vdeliver]
[keine .qmail-... Dateien]
[keine .qmail Datei]
Alle VMail-Emailadressen werden zuerst von QMail verarbeitet und von diesem über die .qmail-default Datei an VMail weitergeleitet.

Solange keine .qmail Datei besteht, die an ein VMail-Postfach weiterleitet, können bedenkenlos gleichnamige QMail-Emailadressen und VMail-Emailadressen angelegt werden. Die Emailadresse wird dann zuerst von QMail abgefangen und befolgt die Anweisungen in der entsprechenden .qmail-Datei. Wenn allerdings eine .qmail Datei besteht, die an ein VMail-Postfach weiterleitet, für dessen Emailadresse-Namen es auch eine .qmail-... Datei gibt, kommt es zu einem Looping, das in einer "failure notice" endet.

QMail und VMail Konflikt

[.qmail-default |/usr/bin/vdeliver]
[eine oder mehrere .qmail-... Dateien]
[.qmail Datei mit Weiterleitung an VMail-Postfach]
Es darf niemals eine gleichnamige .qmail-... Datei QMail-Emailadresse von der VMail-EMailadresse (VMail-Postfach-Name) geben, die in der .qmail Datei eingetragen ist. Es wird sonst ein Looping erzeugt, das zu einer "failure notice" führt.
.qmail-info user
.qmail user-info
/home/user/users/info/
-> looping "failure notice"
Wenn aber in diesem Beispiel in der .qmail-info eine externe Emailadresse eingetragen ist, dann wird kein Looping erzeugt. Weil die Email sozusagen vorher rausgekickt wird.
.qmail-info externe@example.com
-> externe@example.com
Hier besteht die Möglichkeit auch für alle anderen .qmail-... Datei QMail-Emailadressen, eingehende Emails an eine QMail-Emailadresse direkt per .qmail-... Datei in ein VMail-Postfach zu speichern. Dazu kann entweder das Kürzel Username-Postfachname oder der Pfad zum VMail-Postfach eingetragen werden. Aber niemals die Emailadresse, wegen des Looping.
.qmail-info user-info
-> /home/user/users/info/
oder auf direktem Weg:
.qmail-info ./users/info/
-> /home/user/users/info/
Mit der letzter Variante wird sowohl VMail als auch die .qmail-default und die .qmail umgangen. Das funktioniert also auch ohne .qmail-default und .qmail Datei.

Uberspace Email-Accounts in Thunderbird einrichten

Keine Garantie. Keine Gewähr. Kein Support.
Weiterlesen »

Freitag, 30. März 2018

Google Blogger/Blogspot Bilder Backup sichern/downloaden/löschen

Google Blogger/Blogspot bietet die Möglichkeit die Inhalte eines Blogs zu sichern. In diesem Backup sind aber keine Bilder enthalten. Die Bilder eines Blogs müssen extra gesichert werden. Es besteht die Möglichkeit ein Backup aller Bilder eines Blogs zu speichern, sowie für jedes Blog ein Bilder Backup zu speichern.

Google Blogger/Blogspot Bilder Backup speichern


Die Bilder in einem Google Blogspot Blog werden in einem Albumarchiv bei Google gespeichert. Jeder hat dort auf seine Bilder Zugriff. Pro Google Account gibt es ein Albumarchiv, dass pro Blog ein Bilderalbum/Verzeichnis hat. In dem Google Albumarchiv sind zudem weitere Bilder aus dem Google Account gespeichert. Das eigene Google Albumarchiv ist unter dieser URL zu finden:


Für die Sicherung eines Backups mit allen Bildern eines Blogs bitte in das jeweilige Album klicken. Dort befindet sich oben rechts ein Menü mit dem Menüpunkt "Album herunterladen".

Der Download kann je nach dem wie viele Bilder im Blog verwendet werden eine länger Zeit benötigen.
Es können vorher auch Bilder aussortiert werden, indem nicht mehr benötigte Bilder gelöscht werden.

Bilder in Blogger löschen


Wenn ein Blogpost gelöscht wird, werden nicht die im Blogpost verwendeten Bilder gelöscht. Diese müssen extra manuell im Google Albumarchiv gelöscht werden.

Keine Garantie. Keine Gewähr. Kein Support.

Weiterlesen »

Donnerstag, 29. März 2018

Uberspace Email-Accounts in Thunderbird einrichten

Uberspace ist ein beliebter Webhoster und Thunderbird ein beliebtes Email-Programm. Wie beides zusammen genutzt werden kann, wird hier kurz und bündig erklärt.

TUTORIAL: Uberspace Email-Accounts in Thunderbird einrichten.

Bei Uberspace hat jeder User eine Emailadresse mit Emailpostfach, die in U6 user@server.uberspace.de und in U7 user@uber.space ist. Mit eigener Domain besteht zudem die Emailadresse user@example.com. Das gilt für jede genutzte Domain, wenn mehrere Domains genutzt werden. Zudem können weitere Emailadressen und Emailpostfächer angelegt werden.

Uberspace bietet für das default Email-Postfach die Möglichkeit weiterer Email-Adressen über QMail und für weitere Email-Adressen mit eigenen Email-Postfächern VMail. Einzelheiten dazu sind dem Uberspace wiki oder manual zu entnehmen.

Uberspace-default-Emailadresse: user@server.uberspace.de / user@example.com / ab U7: user@uber.space
Uberspace-default-Emailpostfach: /home/user/Maildir/

Die QMail Dateien für QMail-Email-Adressen befinden sich im Verzeichnis /home/user/
Das QMail-default-Email-Postfach ist das Uberspace-default-Emailpostfach /home/user/Maildir/
Die VMail-Email-Postfächer befinden sich im Verzeichnis /home/user/users/

Es bestehen bereits die QMail-Emailadressen:
.qmail-hostmaster = hostmaster@user.server.uberspace.de / user-hostmaster@server.uberspace.de / hostmaster@example.com / ab U7: hostmaster@uber.space
.qmail-postmaster = postmaster@user.server.uberspace.de / user-postmaster@server.uberspace.de / postmaster@example.com / ab U7: postmaster@uber.space
.qmail-abuse  = abuse@user.server.uberspace.de / user-abuse@server.uberspace.de / abuse@example.com / ab U7: abuse@uber.space

Für weitere QMail Emailadressen am besten eine der soeben aufgelisteten kopieren und den Namen ändern. Bei Email-Adressen mit Punkt . einen Doppelpunkt : im Dateinamen verwenden.

QMail
Mit QMail können unter anderem Alias-Adressen für das Uberspace-default-Postfach (/home/user/Maildir/) mit der Uberspace-default-Emailadresse "user@server.uberspace.de" (ab U7 "user@uber.space") eingerichtet werdenn können ("user-alias@server.uberspace.de" oder "alias@user.server.uberspace.de" oder alias@example.com). Alle QMail-Emailadressen werden im default-Modus im Uberspace-default-Postfach gespeichert, wenn sie nicht explizit an eine externe Emailadresse weitergeleitet werden.
Ist in einer .qmail-... Datei nur der Uberspace-Username eingetragen, dann werden Emails an diese QMail-Emailadresse im Uberspace-default-Postfach gespeichert. Technisch gesehen passiert in diesem Fall eine Weiterleitung an die Uberspace-default-Emailadresse "user@server.uberspace.de". Weil das Qmail-System "@server.uberspace.de" automatisch anfügt, ist als Eintrag in eine .qmail-... Datei nur "user" notwendig.
QMail-Emailadresse: alias@example.com
QMail-Datei: .qmail-alias Inhalt: user
-> /home/user/Maildir/ (Uberspace-default-Postfach )

In Thunderbird kann für das Uberspace-default-Postfach als Benutzer für den Posteingangsserver und Postausgangsserver der Uberspace-Username verwendet werden. Es kann als Benutzer auch die Uberspace-default-Emailadresse "user@server.uberspace.de" und auch mit eigener Domain "user@example.com" verwendet werden.
QMail extrahiert nur den Email-Namen vor dem "@" und fügt automatisch den Hostnamen "@server.uberspace.de" an, wenn nicht schon vorhanden. Sowie setzt bei allen eingehenden Emailadressen, die keine Uberspace-default-Emailadresse sind, den Usernamen "user" mit Bindestrich "-" davor. Beispiel:
"user-info@server.uberspace.de" wird systemintern nicht geändert.
"info@user.server.uberspace.de" wird systemintern zu "user-info@server.uberspace.de" geändert.
"info@example.com" wird systemintern zu "user-info@server.uberspace.de" geändert.
Wichtig bei QMail-Emailadressen ist, dass entweder der Uberspace-Username oder eine eigene Domain darin enthalten ist, damit diese zugewiesen werden können.
.qmail-info
info@user.server.uberspace.de
user-info@server.uberspace.de
ab U7: info@user.uber.space (funktioniert nicht: user-info@uber.space)
info@example.com

Als Posteingangsserver und Postausgangsserver muss in Thunderbird die Subdomain des Uberspaces (der Hostname) angegeben werden "server.uberspace.de". Auch bei Verwendung einer eigenen Domain, da hier das Zertifikat nicht für die eigene Domain gilt.

VMail
Bei VMail ist es ähnlich wie soeben bei QMail beschrieben, weil alle VMail Emailadressen zuerst QMail durchlaufen und wenn sie dort nicht abgefangen werden, weil nicht vorhanden, dann durch die .qmail-default an VMail weitergeleitet werden.

In Thunderbird kann bei VMail-Postfächern als Benutzer für den Posteingangsserver und Postausgangsserver der Username mit VMail-Postfachnamen "user-postfach" verwendet werden. Es kann als Benutzer auch die VMail-Emailadresse "postfach@user.server.uberspace.de" und auch mit eigener Domain "postfach@example.com" verwendet werden. Wichtig ist hier wieder, dass entweder der Uberspace-Username oder die eigene Domain in der Email-Adresse vorkommt.

Bei einer Weiterleitung einer QMail-Alias-Emailadresse an ein VMail-Postfach muss in die .qmail-... Datei der Username mit VMail-Postfachnamen "user-postfach" eingetragen werden. Beispiel:
VMail-Postfach: info
QMail-Datei: .qmail-alias Inhalt: user-info
Systemintern geschieht dann folgendes:
alias@example.com
user-alias@example.com
-> .qmail-alias "user-info"
user-info@server.uberspace.de
-> .qmail-default -> VMail
Es darf nie eine .qmail-... Datei mit VMail-Postfachnamen, und umgekehrt, existieren. Das erzeugt ein looping mit failure notice.

Als Posteingangsserver und Postausgangsserver muss in Thunderbird die Subdomain des Uberspaces angegeben werden "server.uberspace.de". Auch bei Verwendung einer eigenen Domain, da hier das Zertifikat nicht für die eigene Domain gilt.

Thunderbird
Die automatischen Voreinstellungen, die beim erstellen eines neuen Email-Accounts in Thunderbird eingestellt werden, sind für Uberspace Email-Postfächer nicht richtig, wenn eigene Domains verwendet werden. Das zum Emailpostfach zugehörige Zertifikat gilt hier nur für uberspace.de und nicht für eigene Domains.

Schritt für Schritt

Es gibt im Tutorial einen Unterschied zwischen dem Uberspace-default-Postfach und einem VMail-Postfach.

In den Beispielen weren folgende Usernamen, Email-Adressen, Email-Postfächer und eigene Domains verwendet.
Username: user
Eigene Domain: example.com
QMail-Email-Adresse: x@example.com (.qmail-x Datei mit Inhalt "user")
VMail-Email-Postfach: x
VMail-Email-Adresse: x@example.com
INFO: Es ist nicht möglich eine gleichnamige QMail und VMail Email-Adresse anzulegen, bzw. ergibt das Konflikte. Es funktioniert nur entweder oder. Da in den folgenden Beispielen beides getrennt behandelt wird, ist das kein Problem. Mit der Verwendung verschiedener Email-Namen ist beides möglich.

1.) Konten-Einstellungen öffnen
Über das Thunderbird Menü die Konten-Einstellungen öffnen.
Thunderbird Email-Konten-Einstellungen - Uberspace

2.) Email-Konto hinzufügen
Das Drop-Down Menü "Konten-Atkionen" befindet sich unten links im Fenster "Konten-Einstellungen". Dort auf "E-Mail-Konto hinzufügen..." klicken.
Thunderbird Email-Konto hinzufügen - Uberspace

3.) Neues Email-Konto einrichten
In dem Fenster "Konto einrichten" einen Namen und eine Email-Adresse eingeben.
Ein Name ist Pflicht. Dieser kann später gelöscht/entfernt/geändert werden.
Als Email-Adresse kann auch eine mit eigener Domain verwendet werden.
Bitte noch kein Passwort eingeben.
Bitte das Häkchen bei "Passwort speichern" entfernen.
Danach auf den Button "Weiter" klicken. Das Fenster wird nun seinen Inhalt ändern.
Thunderbird Email-Konto einrichten - Uberspace

4.) Neues Email-Konto einrichten
Das Fenster hat seinen Inhalt geändert.
Jetzt nicht auf den Button "Fertig" klicken.
Als Server-Adresse muss bei "Posteingangs-Server" und "Postausgangs-Server" unbedingt die Uberspace-Server-Adresse eingetragen werden. Da es ansonsten eine Fehlermeldung gibt.
Bei der Fehlermeldung keine "Sicherheits-Ausnahmeregel bestätigen".
Thunderbird Email Zertifikat - Uberspace
"Abbrechen" klicken!
Es muss jetzt nur auf den Button "Manuell bearbeiten" geklickt werden. Danach kann immer noch zwischen IMAP und POP3 gewählt werden.
Das Fenster wird sich nun vergrößern und erneut seinen Inhalt ändern.
Thunderbird Email-Konto einrichten - Uberspace


QMAIL oder VMail?
Im folgenden nun die Unterschiede zwischen QMail-Postfach und VMail-Postfach, sowie einer Variante, die bei beiden funktioniert.

QMail
5.1) Neues Email-Konto einrichten
Das Fenster hat sich verbreitert und seinen Inhalt geändert.
Hier kann jetzt bei "Posteingangs-Server" zwischen IMAP und POP3 gewählt werden.

"Posteingangs-Server:" server.uberspace.de
"Postausgangs-Server:" server.uberspace.de
"server" gegen den Servernamen austauschen.

Als "Benutzername" muss bei "Posteingangs-Server" und "Postausgangs-Server" in dieser Variante der Username eingetragen werden.
"Benutzername:"
"Posteingangs-Server:" user
"Postausgangs-Server:" user
"user" gegen den eigenen Usernamen austauschen.
Bei "Posteingangs-Server:" muss bei "SSL" unbedingt "SSL/TLS" ausgewählt werden.
Thunderbird Email-Konto einrichten - Uberspace
6.1) Neues Email-Konto einrichten
Jetzt auf den Button "Erneut testen" klicken.
Danach auf den Button "Erweiterte Einstellungen" klicken. Nicht auf den Button "Fertig" klicken.
Das Fenster schließt sich.
Thunderbird Email-Konto einrichten - Uberspace
  
VMail
5.2) Neues Email-Konto einrichten
Das Fenster hat sich verbreitert und seinen Inhalt geändert.
Hier kann jetzt bei "Posteingangs-Server" zwischen IMAP und POP3 gewählt werden.

"Posteingangs-Server:" server.uberspace.de
"Postausgangs-Server:" server.uberspace.de
"server" gegen den Servernamen austauschen.

Als "Benutzername" muss bei "Posteingangs-Server" und "Postausgangs-Server" in dieser Variante der Username mit VMail-Postfachname eingetragen werden. Im Beispiel hat der User den Namen "user" und das VMail-Postfach den Namen "x". Daraus ergibt sich der Benutzername "user-x".
"Benutzername:"
"Posteingangs-Server:" user-x
"Postausgangs-Server:" user-x
"user" gegen den eigenen Usernamen austauschen.
"x" gegen den eigenen VMail-Postfachnamen austauschen.
Bei "Posteingangs-Server:" muss bei "SSL" unbedingt "SSL/TLS" ausgewählt werden.
Thunderbird Email-Konto einrichten - Uberspace
6.2) Neues Email-Konto einrichten
Jetzt auf den Button "Erneut testen" klicken.
Danach auf den Button "Erweiterte Einstellungen" klicken. Nicht auf den Button "Fertig" klicken.
Das Fenster schließt sich.
Thunderbird Email-Konto einrichten - Uberspace

QMail sowie VMail
5.3) Neues Email-Konto einrichten
Das Fenster hat sich verbreitert und seinen Inhalt geändert.
Hier kann jetzt bei "Posteingangs-Server" zwischen IMAP und POP3 gewählt werden.

"Posteingangs-Server:" server.uberspace.de
"Postausgangs-Server:" server.uberspace.de
"server" gegen den Servernamen austauschen.

Als "Benutzername" kann bei "Posteingangs-Server" und "Postausgangs-Server" in dieser Variante die Email-Adresse eingetragen werden, sogar mit eigener Domain.
"Benutzername:"
"Posteingangs-Server:" x@example.com
"Postausgangs-Server:" x@example.com
Im Beispiel eine zusätzliche QMail-Email-Adress-Name "x" oder ein VMail-Postfach mit VMail-Email-Adresse "x".
"x" gegen den den eigenen zusätzlichen QMail-Email-Adress-Namen oder den eigenen VMail-Email-Postfachnamen austauschen.
Bei "Posteingangs-Server:" muss bei "SSL" unbedingt "SSL/TLS" ausgewählt werden.
Thunderbird Email-Konto einrichten - Uberspace
6.3) Neues Email-Konto einrichten
Jetzt auf den Button "Erneut testen" klicken.
Danach auf den Button "Erweiterte Einstellungen" klicken. Nicht auf den Button "Fertig" klicken.
Das Fenster schließt sich.
Thunderbird Email-Konto einrichten - Uberspace

7.) Konten-Einstellungen
Das Email-Konto wurde erstellt.
Jetzt können weitere Einstellungen im Email-Konto vorgenommen werden, bevor sich dieses zum ersten Mal mit dem Email-Postfach bei Uberspace verbindet.
Hier kann jetzt auch der Name gelöscht/geändert werden.
Info: Wenn im Menüpunkt "Server-Einstellungen" der "Lokale Ordner" geändert wird, wird Thunderbird einen Neustart verlangen. Wenn das in diesem Moment unerwünscht ist, dann auf "Abbrechen" klicken.
Thunderbird Konten-Einstellungen - Uberspace

Das war es auch schon. Viel Spaß beim emailen!


Keine Garantie. Keine Gewähr. Kein Support.
Weiterlesen »