Mail aus einer Software heraus versenden

Manchmal möchte aus einer Desktopanwendung heraus eine Mail verschicken. Das ist insofern problematisch, da man die Zugangsdaten für einen Mailaccount nicht in einer Anwendung hinterlegen sollte. Aus Webanwendungen heraus ist das Senden von Mails dagegen eine einfache Sache. Also was liegt näher als diesen Vorteil für das Senden von Mails aus Desktopanwendungen heraus zu nutzen.

<?php
    $reciever=$_POST["reciever"];
    $allowedRecieverDomain="example.org";
    $subject=$_POST["subject"];
    $text=$_POST["message"];

    //Sender
    $senderName="Mailer";
    $sender="";

    //Additional challenge
    $challenge="abc123";
    if($challenge!=$_POST["challenge"]) return;

    //Check reciever
    $atCount=substr_count($reciever, "@");
    if($atCount>1) return;

    if(!(strpos($reciever, "@" . $allowedRecieverDomain)===FALSE))
    {
        mail($reciever, $subject . " - (" . date("d.m.y - H:m:s") . ")", $text, "From: $senderName <$sender>");
    }
?>

Ein kleines PHP Skript mit dem Namen „mailer.php“ sorgt dafür das die Mail bzw. der Text der Mail in Empfang genommen wird. Anschließend wird nachgeschaut ob die Mail an einen validen Sender adressiert ist. In diesem Beispiel werden nur Mails an @example.org weitergeleitet. Schließlich möchte man keine Spamschleuder betreiben. Nun müssen die Parameter in der Anwendung noch per POST-Request übergeben werden. Unter C# könnte das ganze so aussehen:

System.Net.ServicePointManager.Expect100Continue=false;

string url="http://example.org/mailer.php";

using(var wb=new WebClient())
{
    var data=new NameValueCollection();
    data["sendername"]="Mailer";
    data["sender"]="";
    data["reciever"]="";
    data["subject"]="Mail from Application";
    data["message"]="Message";

    var response=wb.UploadValues(url, "POST", data);
}

Der Quellcode ist dabei auf GitHub zu finden und steht unter der AGPL.

Roundcube und SMTP

Nachdem das Roundcube (eine Webmaileroberfläche) frisch aufgesetzt war und der Mailempfang funktionierte, begrüßte es mich beim Senden mit der Meldung:

SMTP Fehler (554): Der Empfänger „“ konnte nicht gesetzt werden (5.7.1 <>: Relay access denied).

Augenscheinlich gab es dort ein kleines Problem mit dem SMTP-Server. Abhilfe schuf eine kleinere Änderung in der „main.inc.php“ welche sich im „config“ Ordner der Roundcube-Installation befindet. Dort fügt man folgende zwei Zeilen hinzu:

$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';

Unter Umständen kann es sein das es diese Zeilen bereits gibt, dann müssen nur noch die Werte „‚%u'“ und „‚%p'“ eingetragen werden. Danach sollte der Mailversand unter Roundcube ohne Probleme funktionieren.

Cheat sheets

Manchmal benötigt man für eine Programmiersprache oder eine Bibliothek einen sogenannten „Cheat sheets“. Auf diesen findet man die wichtigsten Fakten, Befehle und ähnliches in einer kurzen und kompakten Form zusammengefasst.

quicklycode.com

quicklycode.com

Eine Seite auf der solche „Cheat sheets“ zu finden sind ist http://www.quicklycode.com/. Dort findet man unzählige dieser Übersichten nach Kategorien sortiert zum Download, je nach Format als PDF oder Grafikdatei.

iconmonstr

Da sitzt man an seinem neuen Webprojekt und ist mal wieder auf der Suche nach einem passenden Icon für diesen und jenen Button oder einen bestimmten Bereich. Bei diesem Problem hilft in Zukunft „iconmonstr“. Auf der Webseite gibt es Icons für alle möglichen Zwecke als PNG und SVG Datei. Das „License Agreement“ ist dabei recht übersichtlich gehalten:

By copying or downloading this icon, you automatically agree to the following restrictions: The icon can be used freely in both personal and commercial projects with no attribution required, but always appreciated. You may NOT sub-license, resell, rent, redistribute or otherwise transfer the icon without express written permission from iconmonstr. All logos and trademarks in social icons are copyright of their respective trademark owners.

Damit darf man das ganze problemlos in seine eigene Projekte (kommerziell und nicht kommerziell) einbauen, wenn man die entsprechenden Bedingungen einhält, was nicht weiter schwierig sein sollte. „iconmonstr“ ist dabei unter http://iconmonstr.com/ zu finden.

Andreas Eschbach – Tipps für „Schreiber“

Andreas Eschbach ist ein deutscher Schriftsteller, welcher Werke wie „Das Marsprojekt“, „Der Letzte seiner Art“ und „Exponentialdrift“ veröffentlicht hat. Für Schreiber und solche die es werden sollen ist seine Webseite ebenso interessant wie die Bücher. Dort gibt es in der Kategorie „Übers Schreiben“ weitläufige Lektüre, welche sich exakt mit diesem Thema. Daneben räumt er mit Mythen wie Schriftsteller werden reich/berühmt et cetera auf. Jeder der sich für das Thema interessiert sollte die entsprechende Seite besuchen. Zu finden ist die Webseite dabei unter http://www.andreaseschbach.de.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Andreas_Eschbach