Mails direkt auf einem POP3 Server löschen

9. April 2009

Da das Herunterladen von Mails bei einem meiner Mailaccounts seit einiger Zeit nicht ganz korrekt funkioniert, habe ich nach einem einfachen und kleinen Tool gesucht, mit dem ich einen POP3 Server einsehen und Mails direkt löschen kann. Die Suche war nicht so leicht, aber hier bin ich fündig geworden: http://www.nairolf.net/mbn-utl-pop3-cleaner.asp#04

Der POP3 Cleaner ist ein super einfaches und freies Tool mit dem man die Mails einsehen und bei Bedarf löschen kann. Es ist zwar schon von 1999, aber deshalb muss es ja nicht schlecht sein! Mittels Telnet lassen sich Mails auch direkt löschen, allerdings ist das ein wenig umständlicher wenn man vorher zumindest den Betreff sehen will. Eine Anleitung dazu gibt es hier.

Wer sowas selber bauen möchte, findet die Anleitung “How to POP3 in C#” hier.

Technik, Software, Entwicklung

Verwendung von log4net

22. November 2008

Manchmal ist es halt so, dass ein Progamm nicht so ganz funktioniert, wie man es gern hätte oder man wüsste gerne, was ein Programm gerade so macht. Um nicht selber Mechanismen für das Schreiben in Logdateien oder das EventLog zu erstellen kann man ein bestehendes Loggingframework verwenden. Eine nettes Loggingframework ist log4net. Es ist relativ simpel ins eigenen Programm eingebunden und lässt Ausgaben in verschiedene Ziele zu, wie z.B. Eventlog, Datenbank, Textdatei, E-Mail per SMTP oder über .Net Remoting.

Nachfolgend beschreibe ich kurz und einfach, was zu tun ist um die eigene Anwendung etwas kommunikationsfreudiger zu machen. Weitere Details findet ihr in den Links am Ende des Posts.

Mein Programm sieht so aus:

   1:  using System;
   2:   
   3:   
   4:  //Legt die Konfiguration auf die Extension "log4net" fest. 
   5:  //Die Konfiguration sollte also Application.exe.log4net benannt werden.
   6:  [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "log4net", Watch = true)]
   7:  namespace logMal
   8:  {
   9:      class Program
  10:      {
  11:          //Erstellt den Logger
  12:          private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  13:   
  14:          static void Main(string[] args)
  15:          {
  16:              log.Info("Anwendung gestartet");
  17:   
  18:              try
  19:              {
  20:                  Convert.ToInt32("log4net");
  21:              }
  22:              catch (Exception ex)
  23:              {
  24:                  log4net.ThreadContext.Properties["EventID"] = 4711;
  25:                  log.Error(ex.ToString());
  26:                  
  27:              }
  28:              log.Info("Anwendung beendet");
  29:              
  30:          }
  31:      }
  32:  }

Wichtig ist zunächst, einen Verweis auf die log4net.dll zu erstellen. In Zeile 6 wird dann die Konfigurationsdatei bzw. deren Endung angeben. Man kann entweder mittels "ConfigFile" die komplette Konfigurationsdatei angeben oder mittels "ConfigFileExtension" die Endung der Konfigurationsdatei. Wird die Logdatei wie im Beispiel konfiguriert erwartet log4net die Konfigurationsdatei mit dem Namen Programm.exe.log4net.

In Zeile 12 wird der Logger erstellt, in Zeile 16, 25 und 28 werden dann die Logmeldungen über den Logger ausgeben, dabei werden versch. Kategorien angegeben (Error und Info). Für die Ausgaben in das EventLog kann noch die EventID angegben werden (siehe Zeile 24).

Das war es dann auch schon mit der Anwendung, interessant wird es dann jetzt in der Konfiguration:

   1:  <?xml version="1.0" encoding="utf-8" ?>
   2:  <!-- This section contains the log4net configuration settings 
   3:  Diese Datei muss "neben" der .exe liegen
   4:  -->
   5:  <log4net>
   6:    <!-- Define some output appenders -->
   7:   
   8:    <!--EventLogAppender schreibt Meldungen ins Eventlog-->
   9:    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
  10:   
  11:      <layout type="log4net.Layout.SimpleLayout" />
  12:   
  13:      <mapping>
  14:        <level value="ERROR" />
  15:        <eventLogEntryType value="Error" />
  16:      </mapping>
  17:      <mapping>
  18:        <level value="DEBUG" />
  19:        <eventLogEntryType value="Information" />
  20:      </mapping>
  21:   
  22:    </appender>
  23:   
  24:    <!-- RollingFileAppender schreibt eine Logdatei
  25:        Die Logdatei kann entweder nach Datum oder Größe überschrieben werden
  26:    -->
  27:    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
  28:      <file value="logfile.log" />
  29:      <appendToFile value="true" />
  30:      <maximumFileSize value="100KB" />
  31:      <maxSizeRollBackups value="2" />
  32:   
  33:      <layout type="log4net.Layout.PatternLayout">
  34:        <param name="Header" value="[Header]\r\n" />
  35:        <param name="Footer" value="[Footer]\r\n" />
  36:        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
  37:      </layout>
  38:   
  39:    </appender>
  40:   
  41:    <!-- Versenden von Mails -->
  42:    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
  43:      <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
  44:      <subject value="%-5level %logger" />
  45:   
  46:      <to value="you@me.co.uk" />
  47:      <from value="me@me.co.uk" />
  48:      <smtpHost value="localhost" />
  49:    </appender>
  50:   
  51:    <!-- Setup the root category, add the appenders and set the default level -->
  52:    <!-- Reihenfolge All < Debug < Info < Warn < Error < Fatal < Off -->
  53:    <root>
  54:      <level value="DEBUG" />
  55:      <appender-ref ref="RollingFile" />
  56:      <appender-ref ref="EventLogAppender" />
  57:      <appender-ref ref="SmtpAppender" />
  58:    </root>
  59:  </log4net>

In einer Konfiguration können mehrere Appender angegeben werden. Ein Appender gibt immer das Ziel für's Logging an. Ab Zeile 9 wird der EventLogAppender konfiguriert um in das Eventlog (wär hätte das gedacht) zu schreiben. Für die Ausgabe wird noch ein Layout Pattern angegeben (Zeile 11). Ab Zeile 13 wird dann ein Mapping zwischen den log4net Kategorien und den EventLog Kategorien erstellt.

Der zweite Appender wird ab Zeile 27 definiert und ist ein RollingFileAppender. Dieser Appender schreibt eine Logdatei, die entweder nach Größe (im Beispiel 100KB, siehe Zeile 30) oder nach Datum begrenzt werden kann. Die "maxSizeRollBackups" gibt an, wie viele Dateien erhalten bleiben bevor eine Datei überschrieben wird. Um das Logverzeichnis nicht zu überfüllen ist das ein sehr guter Mechanismus.

Ein weiterer Appender wird ab Zeile 41 definiert. Über den SMTP Appender (wer zählt, wie oft ich Appender in diesem Post geschrieben habe und mir den Wert per Mail schickt, bekommt ein Eis) können die Meldungen direkt per Mail versendet werden. Es müssen nur die notwendigen Paramter für eine Mail (Subject, to, from, smtpHost) sowie der Mailtext angegeben werden und schon wird die Mail versendet.

In der Ausgabe 2/2005 der dotnetpro gibt es eine interessanten Artikel über das Loggen mittels log4net. Hier gibt es auch eine List der verfügbaren Appender, der verfügbaren Layouts sowie der Formatierungsparameter.

Ab Zeile 53 werden noch allgemeine Parameter konfiguriert. In Zeile 54 wird festgelegt, was geloggt werden soll. Bei "All" wird alles geloggt, bei "Error" werden nur die Fehler und darunterliegende (siehe Zeile 52) Meldungen geloggt.

Es ist auch möglich, für verschiedene Klassen verschiedene Appender anzugeben. Dazu muss unterhalb des <root> Elements ein Logger Element angegeben werden.

   1:  <logger name="MeinNamespace.MeineKlasse">
   2:      <level value="ALL" />
   3:      <appender-ref ref="RollingLogFileAppender" />
   4:  </logger>

So ist es möglich für die Klasse1 ins Eventlog zu posten und für Meldungen aus Klasse2 in eine Logdatei.

Interessant wäre noch zu wissen, ob und wie es möglich ist, pro Level verschiedene Appender anzugeben. Also bis Level "Warn" wird in eine Datei geschrieben und "Error" Meldungen werden per E-Mail gesendet. Falls da jemand noch Tipps für mich hat, wäre ich sehr dankbar.

Das war ein Schnellüberblick auf das log4net Framework aber ich denke damit bekommt man einen schnellen Einstieg.

Links:

log4net Homepage: http://logging.apache.org/log4net/

log4net Download: http://logging.apache.org/log4net/download.html

log4net SDK: http://logging.apache.org/log4net/release/sdk/index.html

log4net Configuration Examples: http://logging.apache.org/log4net/release/config-examples.html

dotnetpro 02/2005 "Logging mit log4net": http://www.dotnetpro.de/articles/onlinearticle1567.aspx

Downloads:

Program.cs (937,00 bytes)

logMal.exe.log4net (1,94 kb)

Entwicklung

Microsoft Visual Basic Power Packs 3.0

20. March 2008

 

Microsoft Visual Basic Power Packs 3.0

DataRepeater control, Line and Shape controls, PrintForm component, and Printer Compatibility Library all rolled into one download.

Microsoft Visual Basic Power Packs 3.0

 

________________________________________________________________

und hier noch ein nettes Video dazu:

DataRepeater Video

.Net, Entwicklung, Microsoft

Windows Forms Video Training

26. February 2008

DieseSeite ist sehr interessant, wenn man sich einige Sachen der Windows Forms Programmierung unter .NET "zeigen" lassen möchte. Es sind auch schon interessante Sachen von VS 2008 dabei, z.B. der neue "TableManager". Einfach mal die Videos anschauen und lernen.

Entwicklung, Microsoft , , ,

Tagebuch eines Entwicklers

22. February 2008

Neno Loje ist der MSDN-Experte für Windows Vista. Von Mitte Februar bis in den April hinein veröffentlicht er hier werktäglich neu seine Tagebuch-Notizen, in denen er die für Entwickler relevanten Dinge von Windows Vista vorstellt. Dabei geht es sowohl um Kompatibilität alter Applikationen auf dem neuen System, als auch um das Kennenlernen der neuen Möglichkeiten, die man nutzen kann – hin und wieder angereichert durch ein paar Tipps & Tricks oder Hinweise zu Dingen, die vielleicht nicht auf den ersten Blick selbsterklärend sind.

 

Source: Tagebuch eines Entwicklers (Microsoft)

 

_________________________________________________________________

Ich persönlich finde es sehr interessant und werde die Sache weiter verfolgen!

Entwicklung, Microsoft

Visual Studio 2008 Express Editions in deutsch

13. February 2008

Die kostenlosen Visual Studio Express Editions sind leistungsfähige, einfach zu verwendende und leicht erlernbare Tools für Einsteiger und Hobbyprogrammierer und alle, die eine schlanke, schnelle Entwicklungsumgebung für die Web- oder Windows-Programmierung suchen.

Weitere Infos und Downloads in deutsch: http://www.microsoft.com/germany/express/

Entwicklung, Microsoft

TechTalk Vorträge als Video

12. January 2008

Die kompletten Referate der letzten beiden MSDN TechTalk-Roadshows sind ab sofort auch als Online-Video verfügbar. Im Oktober ist Dariusz Parys dabei der Frage nachgegangen „Visual Studio 2008 und .NET Framework 3.5 - Was ist neu?“; im November-TechTalk hat sich Jana Paetzoldt mit dem Thema „Expression Studio“ beschäftigt. Fürs Anschauen sollten Sie sich mit ausreichend Proviant versorgen: die Vorträge dauern jeweils rund 3,5 Stunden!

Quelle: msdn.microsoft.com

Entwicklung, Microsoft , ,

Visual Studio 2008 Express Edition

9. January 2008

Unter http://www.microsoft.com/express/ sind die Express Editionen von Visual Studio erhältlich. Derzeit leider nur in englisch und japanisch.

Entwicklung

Kostenlose Entwicklerbücher

11. December 2007

24 eBooks aus seinem aktuellen Fachbuch-Sortiment verschenkt der Frankfurter Verlag „entwickler.press“ bis Weihnachten auf seiner Website. Die Bücher gibt’s im Rahmen eines Online-Adventskalenders, der jeden Tag einen anderen Titel zum herunterladen bereithält.
Link:
Kostenlose Bücher bei entwickler.press

Und rechtzeitig zum Fest versorgt Sie auch Microsoft Press mit ausreichend Lesestoff für die Feiertage und stellt Ihnen „Visual Basic 2005 – Das Entwicklerbuch“ zum freien Download zur Verfügung. Der erste Teil steht ab sofort bereit; Teil 2 folgt im Laufe des Dezember.
Link:
Visual Basic-Entwicklerbuch

Quelle: giza-blog.de

Entwicklung

Visual Studio 2008

12. November 2007

Im Februar wird der offizielle Launch von Visual Studio 2008, Windows Server 2008 und SQL Server 2008 stattfinden. Für MSDN Abonnenten wird Visual Studio jedoch bereits ab November verfügbar sein:

Das Warten hat ein Ende, noch im November werden MSDN-Abonnenten die finale Version von Visual Studio 2008 per Download erhalten! Dies hat S. Somasegar, Corporate Vice President of the Developer Division, in seiner Keynote auf der TechEd in Barcelona verkündet. Der offizielle Launch findet dann gemeinsam mit Windows Server 2008 und dem SQL Server 2008 im Februar statt. Parallel zum Launch findet ebenfalls die SharePoint-Konferenz statt.

Quelle: blogs.msdn.com/sebweber

Auf der Schweizer Microsoft Seite des MSDN Techtalk gibt es bereits die Folien zu Visual Studio 2008 und .Net Framework 3.5 zum download, im deutschen Archiv werden die Unterlagen sicher bald folgen.

Entwicklung, Microsoft