Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

POP3 mit SSL/TLS und VB6

81 views
Skip to first unread message

Hans Schlonies

unread,
May 28, 2014, 4:33:02 AM5/28/14
to
Hallo zusammen,

ich nutze eine selber geschriebene Funktion, die alle 5 Minuten
prᅵft, ob EMail in einem meiner 20 POP3 Konten liegt. Vor ein
paar Wochen hat 1und1 den Mailverkehr komplett auf SSL/TLS
umgestellt. Leider auch bei den Root-Servern.

Aus Zeitmangel habe ich ein Freeware-Tool eingebaut, das die
Arbeit bisher verrichtet hat. Leider hat sich das Freewaretool
als Shareware entpuppt und heute den Dienst eingestellt:-((

Nun stehe ich voll auf dem Schlauch, weil ich von SSL/TLS keinen
blassen Schimmer habe, und im Moment auch keine Zeit habe, mich
da einzulesen.

Hat von Euch zufᅵllig jemand etwas Code rumliegen? Alles was
ich brauche, ist die Anzahl der EMails, oder auch nur die
Information ob EMail vorhanden ist.

Gruᅵ

Klaus

Anton Bayer

unread,
May 30, 2014, 8:24:31 AM5/30/14
to
Nachdem bisher noch keine Antwort gekommen ist hier mein zarter Vorschlag
fᅵr einen vorlᅵufigen Workaround:

Alle POP3-Konten 1und1-seitig als Umleitung auf ein gemeinsames Konto
umdefinieren und dieses Konto via Windows Mail o.ᅵ. periodisch leeren und
per Regeln in einzelne lokale (Mailadressen-)Ordner verteilen. Dabei wird
dann auch neue Mail im Systray signalisiert.

Als nᅵchsten Schritt kᅵnnte man dann die lokalen Ordner manuell per eigener
Software abklappern, notfalls auch das manuell-periodisch (statt
ereignisgetrieben), und so neue Mail erkennen, zᅵhlen & signalisieren.

Klaus Ketelaer

unread,
May 30, 2014, 10:10:03 AM5/30/14
to
Am 30.05.2014 14:24, schrieb Anton Bayer:
Hallo Anton,
danke fᅵr den Vorschlag.

Eigentlich habe ich ᅵberhaupt kein Problem damit, meine EMails
abzurufen, bzw. herunter zu laden, weil ich das ganz normal mit
Thunderbird erledige.

Nochmal mein Problem:
Ich habe hier in meinem Desktop eine Funktion implementiert, die
meine diversen Postfᅵcher in vorgegebenen Intervallen daraufhin
prᅵft, ob sie irgenwelche EMails enthalten.

Wenn dies der Fall ist, wird ein bei AOL geklautes Soundfile
abgespielt ("Sie haben Post"), und wenn ich Lust habe, starte
ich Thunderbird und lese die EMails.

Es geht also nur um die Prᅵfung, ob in einem Postfach Email
vorhanden ist. So muss ich Thunderbird nur starten, wenn
wirklich Mail vorhanden ist.


Im Moment habe ich das Problem umgangen, indem ich die Tools
deinstalliert und einfach neu installiert habe. (Hᅵtte nicht
gedacht, dass das funktioniert;-))

Ich werde mir vermutlich in Kᅵrze ein anderes Tool von Chilkat
kaufen, das mit 100$ preislich im ertrᅵglichen Rahmen liegt.

Gruᅵ

Klaus

Klaus Ketelaer

unread,
May 30, 2014, 10:11:35 AM5/30/14
to
Falls sich jemand wundern sollte:
Ich habe mir wieder einen eigenen News-Account zugelegt;-)

Ulrich Möller

unread,
May 30, 2014, 3:08:57 PM5/30/14
to
Hallo Klaus,

vielleicht gibt es hier eine Anregung, wie man das eventuell auch in vb6
implementieren kᅵnnte:

http://hpop.sourceforge.net/

Ich habe mir die Klasse nicht explizit angeschaut, aber zumindest gibt
es eine Methode, die die Anzahl der Messages mit dem "STAT" Kommando
abruft.

Am einfachsten wᅵre vielleicht einen COM-Wrapper zu erstellen und den
dann in VB einbinden?

Ulrich



Klaus Ketelaer

unread,
May 31, 2014, 2:49:52 AM5/31/14
to
Am 30.05.2014 21:08, schrieb Ulrich Mᅵller:
> Hallo Klaus,
>
> vielleicht gibt es hier eine Anregung, wie man das eventuell auch in vb6
> implementieren kᅵnnte:
>
> http://hpop.sourceforge.net/
>
> Ich habe mir die Klasse nicht explizit angeschaut, aber zumindest gibt
> es eine Methode, die die Anzahl der Messages mit dem "STAT" Kommando
> abruft.
>
> Am einfachsten wᅵre vielleicht einen COM-Wrapper zu erstellen und den
> dann in VB einbinden?


Hallo Ulrich,
danke fᅵr den Tipp.

Ich habe gerade mal versucht, diese C# DLL in VB einzubinden, was
irgendwie nicht zu gehen scheint. Google meint, dass das wohl auch
nicht geht, wenn die DLL nicht explizit dafᅵr ausgelegt ist.

Mich durch den C# Code zu quᅵlen halte ich fᅵr mehr Aufwand, als
mich in SSL einzuarbeiten.

Da wird wohl, bis ich die Zeit finde mich in SSL einzuarbeiten, die
ActiveX DLL von ChilKat der bequemere Weg zu sein.

Gruᅵ

Klaus

Ulrich Möller

unread,
May 31, 2014, 7:12:24 AM5/31/14
to
Hallo Klaus,

eine C# DLL kann man nicht direkt in vb6 einbinden, Der einfachste Weg
ist, eine einfache COM-Klasse hierfᅵr zu schreiben (in vb.net oder C#)
und dann dort einfach eine Instanz der benᅵtigten C#-Klassen erzeugen.
Mit Hilfe dieses COM-Wrappers kann dann einfach die eine von dir
benᅵtigte Methode fᅵr die Anzahl der Emails offen gelegt werden zzgl.
einer Methode fᅵr die Initialisierung mit den Account-Informationen.

Diese COM-Wrapper Klasse kann dann einfach als Verweis in vb6
eingebunden und wird wie alle anderen COM-Objekte verwendet werden. Der
Aufwand hierfᅵr hᅵlt sich noch in Grenzen. Die Einarbeitung in die
Kombination VB6/SSL ist mit Sicherheit sehr viel aufwendiger. Gegenᅵber
einer kommerziellen Lᅵsung hᅵtte das den Vorzug, daᅵ du den Sourcecode
spᅵter deinen Bedᅵrfnissen entsprechend anpassen kannst.

Ulrich


Klaus Ketelaer

unread,
May 31, 2014, 7:55:57 AM5/31/14
to
Am 31.05.2014 13:12, schrieb Ulrich Mᅵller:
> Am 31.05.2014 08:49, schrieb Klaus Ketelaer:
>> Am 30.05.2014 21:08, schrieb Ulrich Mᅵller:
[...]
> eine C# DLL kann man nicht direkt in vb6 einbinden, Der einfachste Weg
> ist, eine einfache COM-Klasse hierfᅵr zu schreiben (in vb.net oder C#)
> und dann dort einfach eine Instanz der benᅵtigten C#-Klassen erzeugen.
> Mit Hilfe dieses COM-Wrappers kann dann einfach die eine von dir
> benᅵtigte Methode fᅵr die Anzahl der Emails offen gelegt werden zzgl.
> einer Methode fᅵr die Initialisierung mit den Account-Informationen.
>
> Diese COM-Wrapper Klasse kann dann einfach als Verweis in vb6
> eingebunden und wird wie alle anderen COM-Objekte verwendet werden. Der
> Aufwand hierfᅵr hᅵlt sich noch in Grenzen. Die Einarbeitung in die
> Kombination VB6/SSL ist mit Sicherheit sehr viel aufwendiger. Gegenᅵber
> einer kommerziellen Lᅵsung hᅵtte das den Vorzug, daᅵ du den Sourcecode
> spᅵter deinen Bedᅵrfnissen entsprechend anpassen kannst.

Hallo Ulrich,
Das wᅵrde bei mir zu grᅵᅵeren Problemen fᅵhren, weil mein Desktop
auf allen Rechnern unter unterschiedlichen Betriebssystemen lᅵuft.
Ich habe wirklich wenig Lust, wegen so einer Funktion, auf allen
Rechnern das .Net-Framework zu installieren, und mich in .Net
einzuarbeiten.

Da arbeite ich mich doch lieber in SSL/TLS ein.

Ich ᅵberlege auch, ob ich mir etwas in Perl bastle, und mich dann
von Perl einfach per UDP benachrichtigen lasse...

Gruᅵ

Klaus

Klaus Ketelaer

unread,
May 31, 2014, 10:58:53 AM5/31/14
to
Hallo zusammen,

ich habe das Problem nun mit einem Perl-Script gelᅵst, das auf
dem Server lᅵuft und die Postfᅵcher alle n Minuten abfragt.

Die Anzahl der Mails wird je Postfach in einer MySql-Tabelle
gespeichert.

Die lokalen Rechner fragen nun nicht mehr mᅵhsam die Postfᅵcher
einzeln ab, sondern setzen ein einzelnes Sql-Statement ab, was
sehr viel schneller geht und gleichzeitig die Zugriffe auf den
Mailserver gewaltig reduziert. Auch die lahmen SSL-Zugriffe
spᅵrt man so nicht mehr;-)

Gruᅵ

Klaus

Lothar Geyer

unread,
Jun 1, 2014, 12:12:44 PM6/1/14
to
Am 28.05.2014 10:33, schrieb Hans Schlonies:
> ich nutze eine selber geschriebene Funktion, die alle 5 Minuten
> prᅵft, ob EMail in einem meiner 20 POP3 Konten liegt. Vor ein
> paar Wochen hat 1und1 den Mailverkehr komplett auf SSL/TLS
> umgestellt. Leider auch bei den Root-Servern.

stimmt nicht. 1und1 hat zwar eine Menge Rummel gemacht und viele E-Mails
verschickt. Ich hole meine Mails aber immer noch ohne Verschlᅵsselung ab.
(Bis sie bei 1und1 angekommen sind, hat sie die NSA sowieso schon 10 mal
mitgelesen. Ohne Verschlᅵsselung.)

Lothar Geyer

Lothar Geyer

unread,
Jun 1, 2014, 12:23:15 PM6/1/14
to
noch eine Anmerkung:

Am 28.05.2014 10:33, schrieb Hans Schlonies:
> Hat von Euch zufᅵllig jemand etwas Code rumliegen? Alles was
> ich brauche, ist die Anzahl der EMails, oder auch nur die
> Information ob EMail vorhanden ist.

mit der Anzahl alleine bist Du nicht wirklich zufrieden. Zumindest
nicht, wenn Du z.B. _auch_ mit einem Smartphone Deine E-Mails liest und
ggfls. lᅵscht. Sicher ist, die Anzahl und die Grᅵᅵe aller E-Mails zu holen.

Das machst Du mit dem POP3-Befehl STAT. In meinem Logfile schaut das so aus:

00:14:38 STAT
00:14:38 enter WSockPOP_DataArrival, BytesTotal=18
00:14:38 strAns=*+OK 643 22684119|CrLf|*, len=18

In der Antwort ist das erst die Anzahl der E-Mails, das zweite die
Gesamtgrᅵᅵe. Die beiden Werte musst Du also nur bis zum nᅵchsten Abruf
zwischenspeichern.

Lothar Geyer

Klaus Ketelaer

unread,
Jun 1, 2014, 12:30:48 PM6/1/14
to
Ja, zwischenzeitlich habe ich bemerkt, dass auf den Rootservern
Port 110 *wieder* funktioniert.

Die normalen 1und1 Konten lassen sich IMO aber nicht mehr ohne SSL
abfragen.

Gruᅵ

Klaus

Klaus Ketelaer

unread,
Jun 1, 2014, 12:44:06 PM6/1/14
to
Am 01.06.2014 18:23, schrieb Lothar Geyer:
> noch eine Anmerkung:
>
> Am 28.05.2014 10:33, schrieb Hans Schlonies:
>> Hat von Euch zufᅵllig jemand etwas Code rumliegen? Alles was
>> ich brauche, ist die Anzahl der EMails, oder auch nur die
>> Information ob EMail vorhanden ist.
>
> mit der Anzahl alleine bist Du nicht wirklich zufrieden. Zumindest
> nicht, wenn Du z.B. _auch_ mit einem Smartphone Deine E-Mails liest und
> ggfls. lᅵscht. Sicher ist, die Anzahl und die Grᅵᅵe aller E-Mails zu holen.

Ich bin mit der Anzahl der Mails vᅵllig zufrieden.

Warum sollte das Lᅵschen von EMail mittels Smartphone
die Anzahl der EMails inkonsistent machen?

Es geht hier einzig um die Information, ob Mail im POP3
Konto vorhanden ist, oder nicht. Wenn Sie vom Handy aus
gelᅵscht wurde, dann ist sie halt nicht vorhanden und
wwird auch nicht gezᅵhlt. Wo liegt das Problem?

>
> Das machst Du mit dem POP3-Befehl STAT. In meinem Logfile schaut das so
> aus:
>
> 00:14:38 STAT
> 00:14:38 enter WSockPOP_DataArrival, BytesTotal=18
> 00:14:38 strAns=*+OK 643 22684119|CrLf|*, len=18
>

Ja, so ᅵhnlich habe ich das frᅵher gemacht und meine Eingangs-Frage
ist gewesen, wie ich genau das mit SSL/TLS mache...

> In der Antwort ist das erst die Anzahl der E-Mails, das zweite die
> Gesamtgrᅵᅵe. Die beiden Werte musst Du also nur bis zum nᅵchsten Abruf
> zwischenspeichern.

Heute mache ich das so:

my $pop = new Mail::POP3Client(
HOST => $host,
USER => $user,
PASSWORD => $pass,
USESSL => $ssl,
);

my $count = $pop->Count();
my $size = $pop->Size();
}


Gruᅵ

Klaus

Lothar Geyer

unread,
Jun 1, 2014, 5:31:55 PM6/1/14
to
Hallo Klaus,

Am 01.06.2014 18:30, schrieb Klaus Ketelaer:
> Ja, zwischenzeitlich habe ich bemerkt, dass auf den Rootservern
> Port 110 *wieder* funktioniert.

nicht wieder. Ich selber bekomme pro Tag etwa 50 E-Mails. Und hatte nie
SSL eingeschaltet. Weder zum Abrufen noch zum Senden.

Lothar Geyer

Lothar Geyer

unread,
Jun 1, 2014, 5:34:55 PM6/1/14
to
Hallo Klaus,

Am 01.06.2014 18:44, schrieb Klaus Ketelaer:
> Heute mache ich das so:
>
> my $pop = new Mail::POP3Client(
> HOST => $host,
> USER => $user,
> PASSWORD => $pass,
> USESSL => $ssl,
> );
>
> my $count = $pop->Count();
> my $size = $pop->Size();
> }

bei uns lᅵuft das etwas anders. In einem eigenen Thread lᅵuft das Prᅵfen
auf und das Abrufen von neuen E-Mails. Und wenn neue da sind, wird das
dem User ᅵber ein Icon in der Statusbar angezeigt. Und wenn es wichtige
sind, zusᅵtzlich ᅵber so ein Hinweisfenster, das sich langsam ins Bild
schiebt. Aber alles selbst geschrieben.

Lothar Geyer

Klaus Ketelaer

unread,
Jun 1, 2014, 7:09:51 PM6/1/14
to
Nach dem Tag der Umstellung konnte ich ohne SSL weder Mails
senden, noch empfangen. Mehr kann ich dazu nicht sagen.

Gruᅵ

klaus

Klaus Ketelaer

unread,
Jun 1, 2014, 7:29:07 PM6/1/14
to
Bei mir lᅵuft das so ab:

Auf dem Server lᅵuft nun ein Perl-Script, welches in festgelegten
Intervallen und Prioritᅵten die Postfᅵcher prᅵft und je Postfach
die Anzahl der Mails, sowie deren Grᅵᅵe in die Datenbank schreibt.

Die Clients lesen jetzt nur noch die Datenbank aus, was enorm viel
Zeit und Traffic spart. Wird Mail gefunden, so wird man ᅵber eine
Sprachnachricht (Sie haben Post) informiert. Nun kann man auf dem
Desktop ablesen wie viele EMails anliegen, und mit der rechten
Maustaste auch ein Popup-Menᅵ mit der genauen Anzeige, in welchem
Postfach was liegt, anzeigen lassen. Ein Doppelklick ruft die
Mail ab.

Zusᅵtzlich rackert das Perl-Script auch schon die ersten Regeln
ab, wie z.B. alle EMails eines Kontos ungelesen zu entsorgen.

Bald kann ich dann auch Regeln definieren, zu denen diese
EMail-Simulation Thunderbird zu blᅵd ist.

Natᅵrlich auch alles selber geschrieben.

Gruᅵ

Klaus
0 new messages