PB.Ex Mail (Windows)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von RSBasic »

Okay, dann füge ich das hinzu. CreateMailEx() gibt es ja bereits, um nur eine neue E-Mail ohne Senden zu erstellen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: PB.Ex Mail (Windows)

Beitrag von Nino »

Hallo RSBasic,

vielen Dank schon mal im Voraus! :-)
Ja, da sind jetzt schon so viele Funktionen, die hab ich mir noch gar nicht alle angekuckt.
Ich werde erst im nächsten Monat Zeit haben, mir das alles in Ruhe anzusehen und es auszuprobieren. Aber eine gute E-Mai-Bibliothek mit POP3-, IMAP- und SMTP-Funktionen wäre m.E. "der Wahnsinn", und würde die Power von PB auf ein neues Level heben ... jedenfalls für mich.
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Re: PB.Ex Mail (Windows)

Beitrag von uweb »

Ja, Du wertest PB echt auf - nicht nur mit der Lib.
Vielen Dank!

Diesmal hätte ich aber einen Verbeserungsvorschlag.
Beim Testen habe ich u.a. meinen Google-Account probiert und jeweils nach ein paar Minuten abgebrochen.
Es sah so aus als ob ExamineMailEx() hängen würde. Bei einem alten Yahoo-Konto kam dann die Ausgabe.
Der Unterschied: Das Konto war fast leer.
Es wäre toll wenn es eine Möglichkeit zum Hochzählen gäbe - Mail 42 von 2019.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von RSBasic »

PB.Ex Mail 1.0.2.0 wurde veröffentlicht.

Changelog:
  • Hinzugefügt: MailIDEx()
  • Hinzugefügt: SetMailSubjectEx()
  • Hinzugefügt: SetMailBodyEx()
  • Hinzugefügt: SetMailFromEx()
  • Hinzugefügt: SetMailToEx()
  • Hinzugefügt: SetMailCCEx()
  • Hinzugefügt: SetMailBCCEx()
  • Hinzugefügt: SetMailPriorityEx()
  • Hinzugefügt: DeleteMailEx()
  • Hinzugefügt: MoveMailEx()
  • Hinzugefügt: CountMailEx()
  • Hinzugefügt: CountMailDirectoryEx()
  • Geändert: CreateMailEx(): Es wird jetzt die MailID der neuen E-Mail zurückgegeben.
  • Geändert: GetMailSubjectEx()
  • Geändert: GetMailBodyEx()
  • Geändert: GetMailFromEx()
  • Geändert: GetMailToEx()
  • Geändert: GetMailCCEx()
  • Geändert: GetMailBCCEx()
  • Geändert: MessageID heißt jetzt MailID
  • Geändert: Hilfe-Beschreibungen zu den einzelnen Funktionen
@uweb
Ich schau es mir an.

@all
Ich bin noch nicht fertig. Weitere Funktionen kommen noch.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von RSBasic »

Hi Nino,

es ist Wochenende und habe jetzt mehr Zeit.

Du möchtest ja diese Trennung haben: CreateMailEx(), SendMailEx()
D.h. man erstellt mit CreateMailEx() eine temporäre E-Mail im Speicher und danach kann man die E-Mail z.B. senden, exportieren, ändern oder auslesen
Das Problem ist aber, dass ich für die temporäre E-Mail eine eigene ID brauche, die nichts mit der MailID (UID) zu tun hat. Alle bisherigen Funktionen basieren auf existierenden E-Mails auf dem Mailserver und mit Hilfe der MailID (UID) kann man auf die jeweilige E-Mail zugreifen und z.B. den Betreff auslesen/ändern oder die Mail verschieben o.ä.
Wenn man eine temporäre E-Mail mit CreateMailEx() erstellt, dann will man als Entwickler i.d.R. die ganzen Funktionen, die für existierenden E-Mails verfügbar sind, auch für die temporäre erstellte Mail anwenden. Nur kann man die Temp-ID und die MailID (UID) nicht unterscheiden.
Ich kann bei jeder Funktion einen zusätzlichen ID-Parameter hinzufügen (einmal für UID und einmal für TempID) oder bei jeder Funktion eine Flag-Konstante hinzufügen, um festzulegen, welche ID man angibt, aber das macht alles viel zu kompliziert und ist meiner Meinung nach keine schöne Lösung.

Die einzige Lösung, die mir einfällt, wäre, dass zwar die Funktion CreateMailEx() gibt, die aber die E-Mail auf dem Mailserver erstellt, so dass die Mail eine UID bekommt, mit der man alle bisherigen Funktionen benutzen kann.
Und SendMailEx() würde ich als direkte Mail-Erstellen-und-Senden-Funktion bereitstellen. D.h. man erstellt damit eine E-Mail mit den Daten, die man als Parameter übergibt, und die E-Mail wird direkt gesendet.
LoadMailEx() und SaveMailEx() würde ich auch bereitstellen. Bei SaveMailEx() würde man dann nur die MailID (UID) einer existierenden E-Mail angeben, die dann auf deine Festplatte exportiert wird.
Würde ich diese Trennung machen, dann weiß ich z.B. bei SaveMailEx() nicht, ob du eine mit CreateMailEx() temporär erstellte E-Mail exportieren möchtest oder eine existierende E-Mail auf dem Mailserver. Mit zusätzlicher Parametrisierung (ob TempID oder MailID (UID) würde das unübersichtlich machen.

Ist mein Vorschlag ohne Trennung deiner Meinung nach schlimm oder hast du einen besseren Vorschlag?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: PB.Ex Mail (Windows)

Beitrag von Nino »

Hallo RSBasic,

erstmal ganz vielen Dank dafür, dass Du Dich so ausführlich mit meinem Vorschlag beschäftigst!
An die Probleme, die Du schilderst, hatte ich zuvor nicht gedacht. So einfach wie ich mir das vorgestellt hatte geht es also nicht.
Bitte mach das Modul nicht zu kompliziert, schon gar nicht meinetwegen. :-)

Was ich v.a. gern hätte ist eine Routine, mit der ich vorhandene gültige Mail-Dateien von der Festplatte laden und verschicken kann. Die Mails möchte ich gern mit selbst geschriebenem Code erzeugen (sind ja letztlich nur Textdateien unter Beachtung der Regeln in RFC 2822). Ließe sich das ohne zu viele Umstände in Dein Modul integrieren?

Vielen Dank nochmal!
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von RSBasic »

Hi Nino,

danke für deine schnelle Antwort.

Bezüglich deiner Frage mit der Importierung. Viele Mail-Clients exportieren ihre E-Mails als EML-Dateien. Das sind reine Textdateien mit einem Header oder Body, die man problemlos selber erstellen kann.
Ich werde versuchen, sowohl eine Export- als auch eine Importfunktion zu bauen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: PB.Ex Mail (Windows)

Beitrag von Nino »

Hi RSBasic!
RSBasic hat geschrieben:Viele Mail-Clients exportieren ihre E-Mails als EML-Dateien. Das sind reine Textdateien mit einem Header oder Body, die man problemlos selber erstellen kann.
Ich weiß. :-) Genau die meinte ich als ich schrieb
(sind ja letztlich nur Textdateien unter Beachtung der Regeln in RFC 2822)
RSBasic hat geschrieben:Ich werde versuchen, sowohl eine Export- als auch eine Importfunktion zu bauen.
Was genau meinst Du mit Ex- und Import? Was ich v.a. bräuchte ist eine Funktion, mit der ich solche selbsterzeugten EML-Dateien per SMTP verschicken kann.

Die eingebauten PB-Funktionen wie CreateMail() oder SetMailBody() sind ja gut zur Bequemlichkeit, wenn man einfache Mails verschicken will. Ich möchte aber die Möglichkeit haben, bei Bedarf den Inhalt von zu versendenden Mail komplett selbst bestimmen zu können.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von RSBasic »

Nino hat geschrieben:
RSBasic hat geschrieben:Ich werde versuchen, sowohl eine Export- als auch eine Importfunktion zu bauen.
Was genau meinst Du mit Ex- und Import? Was ich v.a. bräuchte ist eine Funktion, mit der ich solche selbsterzeugten EML-Dateien per SMTP verschicken kann.
Mit LoadMailEx() und SaveMailEx() kannst du E-Mails auf deine Festplatte sichern und wieder auf deinen Mailserver importieren, wenn die E-Mail nicht mehr existiert oder wenn du eine eigene E-Mail importieren möchtest.
Mit SendMailEx() kannst du mit Hilfe der übergegeben Parameter (Betreff, Body, ...) direkt an einen SMTP-Server senden. Du möchtest ja gerne eine eml-Datei von der Festplatte direkt versenden. Dann werde ich noch eine SendMailFileEx() hinzufügen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: PB.Ex Mail (Windows)

Beitrag von Nino »

Super, vielen Dank!
Antworten