moloch
ich will ein tool programmieren, das mir nen pop3 account abruft, und die mails ausdruckt, sowie die anlagen.
hab dieses sevPOP3 Active x ding gefunden, is aber müll (cpu auf 100% während abrufen) kann mir jemand helfen?
Barabbas
np, pop3 Abrufen ist eigentlich nur Winsock und ein paar virtuelle Benimmregeln (das Protokoll halt).
Hier findest du ein Beispiel, das dir weiterhelfen sollte.
Das Ausrucken sollte mit VB kein Problem sein, allerdings habe ich das bislang auch noch nicht gemacht. Probleme bekommst du mit dem Anhang, den kannst du ohne Probleme speichern und mit der dazugehörigen Applikation aufrufen (ShellExecute), automatisches Ausdrucken geht aber natürlich nur mit Text- / ASCII- Dateien.
hth,
brb
Snake
noch zu bemerken ist, dass du die mails meistens im multipart mime format bekommst. musst sie also erst auseinander nehmen, dürfte aber kein problem sein.
aber wegen binären anhängen:
diese sind mit base64 verschlüsselt (damit es keine übertragungsfehler gibt).
musst binäre anhänge also erst decodieren
moloch
danke schön. funktioniert soweit
ausgabe:
| Zitat: |
+OK 1094 octets
Return-Path: <michi@mholler.com>
X-Original-To: hauswaltraud@mholler.com
Delivered-To: v03361818@dd3334.kasserver.com
Received: from dd3334.kasserver.com (dd3602.kasserver.com [81.209.188.75])
by dd3334.kasserver.com (Postfix) with SMTP id 73827354EEB
for <hauswaltraud@mholler.com>; Sat, 26 Feb 2005 15:46:19 +0100 (CET)
subject:TEST
From: "Michael Holler" <michi@mholler.com>
To: hauswaltraud@mholler.com
MIME-Version:1.0
Content-Type: multipart/mixed; boundary=EEA464E99C641973805584744D7FBC4B
Message-Id: <20050226144619.73827354EEB@dd3334.kasserver.com>
Date: Sat, 26 Feb 2005 15:46:19 +0100 (CET)
X-UIDL: ^5>!!;;R!!^3l!!j&U!!
Status: RO
This is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format
--EEA464E99C641973805584744D7FBC4B
Content-Type: text/plain;
Content-Transfer-Encoding: 8bit
---------------------------------------------------------
Michael Holler
http://www.mholler.com
michi@mholler.com
#313487819
---------------------------------------------------------
--EEA464E99C641973805584744D7FBC4B--
|
geschrieben hab ich
also meine standart sig eben... wie kann ich den header rausfiltern? snake hat gemeint irgndwas mit instr und 2 zeilenumbrüchen, aber ich seh da keine 2 umbrüche. und wie man das instr anwendet weis ich auch net ^^ ich kann kein vb. ich versuchs nur ^^
Barabbas
im Header steht jeweils das boundary:
| Zitat: |
| Content-Type: multipart/mixed; boundary=EEA464E99C641973805584744D7FBC4B |
das musst du auslesen. Das Boundary splittet Header, Nachrichtentext und Attachment. Den Content-Type und die Kodierung kannst du dann ja manuell herausfiltern, die stehen noch im Nachrichtentext.
brb
moloch
kapier ich nicht. wie splitten... und das steht ja nicht am schluss vom header...?
Barabbas
suche einfach nach "boundary=" im Text und lese bis zum Zeilenende. Dann hast du den Trennstring.
Jetzt kannst du die Mail eigentlich mit "--boundary" splitten, im ersten Arrayelement hast du dann den Header, dann den Nachrichtentext und im letzten entweder "--" (d.h. Mail Ende) oder die jeweiligen Anhänge.
brb
moloch
sorry das ich mich so blöd anstelle... aber ich hab keine ahung wie ich das tun soll...
Barabbas
du hast doch die Mail im Rohformat als String und möchtest wissen, wie du an den puren Nachrichtentext kommst?
Jede Mail hat Trennzeichen, die den Anfang / das Ende der einzelnen Abschnitte markieren, das sog. boundary. Dieses ist im Header der Mail (am Anfang des Strings) angegeben uns zwar nach der Zeichenkette "boundary=".
Um das Trennzeichen auszulesen, suche in der ganzen Mail nach "boundary=" und lese von der zurückgegebenen Position bis zum Ende der Zeichenkette aus. Dann hast du das Trennzeichen, das in deinem Beispiel so aussieht: "EEA464E99C641973805584744D7FBC4B".
Jeder Abschnitt beginnt nun mit "--EEA464E99C641973805584744D7FBC4B"! Mit der split() Funktion von VB kannst du nun die einzelnen Abschnitte der Mail in ein Array packen und hast dann im zweiten Element (also sElements(1), wenn das dein Array ist) den Nachrichtentext, in dem lediglich noch Content-Type und Encoding steht, was man aber sicher einfach entfernen kann.
Kannst du das bis dahin nachvollziehen? Ich würde dir ja ein Beispiel schreiben, mein VB ist aber in Münster..
brb
Haudix
Hi,
ich bin neu hier und absoluter Neuling auf dem Gebiet der Programmierung und somit auch in Visual Basic.
Ich habe ein ähnliches Problem: ich habe in VB 2005 eine POP3-Verbindung hergestellt und kann auch meine E-Mails in einem separaten Ordner lokal auf dem Rechner abspeichern. Mein Problem dreht sich jetzt ebenfalls um das Abspeichern des Attachments! Wie kann ich da am einfachsten ne Lösung finden, um diese Aufgabe zu meistern?
Vielleicht hat jemand von euch ein paar wertvolle Tipps und kann mir helfen, ich wäre sehr dankbar!
Gruß
Haudix