Content einer email in sql-datenbank speichern?

Status
Nicht offen für weitere Antworten.
D

dalco

Gast
hallo,
ich versuche einen kleinen mailbrowser zu schreiben, dazu will ich die bereits abgerufenen mails in einer sql datenbank speichern, es klappt bei der adresse, subjekt und einen datum.
beim inhalt, den ich mit:

messages.getContent();

bekomme, speichert er es nicht in die datenbank, hab das feld schon als VARCHAR oder TEXT genommen, wie kann ich den inhalt speichern, vorallem wenn der inhalt der mail nicht nur aus einfachem text besteht, denn damit geht es.

und mit:

messages.getSentDate();

wollte ich die zeit der letzten mail festhalten, um danach nur alle danach kommenden erneut in die datenbank zu speichern, alle abfragen auf diese zeit hin scheitern aber leider.

hier der teil des speichern:
-------------------------------------------------------------------------
Code:
/ Connect to the POP3 server
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore(provider);
store.connect(host, username, password);

// Open the folder
Folder inbox = store.getFolder("INBOX");

if (inbox == null) {
System.out.println("No INBOX");
System.exit(1);
}
inbox.open(Folder.READ_ONLY);

// Get the messages from the server
Message[] messages = inbox.getMessages();

for (int i = 0; i < messages.length; i++) {
Message m = messages[i];

System.out.println("-------------------------------------------------- MAIL: "+i);
System.out.println( " Von: " + m.getFrom()[0] );
System.out.println("-- BETREFF -- " + messages[i].getSubject());
System.out.println("-- ZEIT -- " + messages[i].getSentDate());
System.out.println("-- INHALT -- " + messages[i].getContent() );



data[i][0] = messages[i].getSubject();
data[i][2] = messages[i].getSentDate();
data[i][1] = m.getFrom()[0];


db.connectToDatabase();
con = db.getConnection();
update.doEntrie(con , "INSERT INTO tino (id, fromAdr, subject, sendTime, contend) VALUES (\""
+i+"\",\""
+m.getFrom()[0]+"\",\""
+messages[i].getSubject()+"\",\""
+messages[i].getSentDate()+"\",\""
+messages[i].getContent()+"\")");
db.close();
}
-----------------------------------------------------

danke für eure tipps
mfg
Tino
 

ARadauer

Top Contributor
du musst herausfinden,was die methode zurück liefert,
versuch das mal:

Code:
public void printParts(Part p)
{
Object o = p.getContent();
if (o instanceof String)
{
System.out.println(“Dies ist ein String“);
System.out.println((String) o);
}
else if (o instanceof Multipart)
{
System.out.println(“Dies ist ein Multipart“);
Multipart mp = (Multipart) o;
int count = mp.getCount();
for (int i=0; i<count; i++)
{
printParts(mp.getBodyPart(i));
}
}
else if (o instanceof InputStream)
{
System.out.println(“Dies ist ein InputStream“);
InputStream is = (InputStream) o;
int c;
while ((c = is.read()) != -1) System.out.write(c);
}
}

wenns nicht klappt schau dir das mal an.

The data type of the "content" is returned by the getContentType() method. The MIME typing system is used to name data types.

The "content" of a Part is available in various formats:

As a DataHandler - using the getDataHandler() method. The "content" of a Part is also available through a javax.activation.DataHandler object. The DataHandler object allows clients to discover the operations available on the content, and to instantiate the appropriate component to perform those operations.
As an input stream - using the getInputStream() method. Any mail-specific encodings are decoded before this stream is returned.
As a Java object - using the getContent() method. This method returns the "content" as a Java object. The returned object is of course dependent on the content itself. In particular, a "multipart" Part's content is always a Multipart or subclass thereof. That is, getContent() on a "multipart" type Part will always return a Multipart (or subclass) object.
Part provides the writeTo() method that streams out its bytestream in mail-safe form suitable for transmission. This bytestream is typically an aggregation of the Part attributes and its content's bytestream.
Message and BodyPart implement the Part interface. Note that in MIME parlance, Part models an Entity (RFC 2045, Section 2.4).

ok, hab damit auch noch nicht gearbeitet, aber du musst dir mal den typ über getContentType() hohlen und dnan kannst du irgendwie mit dem datahandler arbeiten.
die mail api ist hier dokumentiert http://java.sun.com/j2ee/1.4/docs/api/index.html

ps: da hab ich auch was gefunden
 
G

Guest

Gast
hallo,

habs versucht und es wird mir auch angezeigt, wenn es ne normale text/plain ist kann es in der sql datenbank gespeichert werden, bei allem anderen kommen fehler, ich weiß nicht weiter???
mfg
Tino
 
T

tuxedo

Gast
Alles was kein "text/plain" ist, ist eben kein Text. Folglich kannst du es nicht als einfachen Text speichern.

Entweder baust du deine DB so um, dass du statt TEXT -> BLOB benutzt und dort dann ganze Java-Objekte reinstecken kannst (welche du dann auch wieder als Java-Objekte rauslesen kannst), ODER du findest einen Weg die anderen, nicht-TEXT/PLAIN Typen in etwas "brauchbares" zu wandeln.

- Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
D Zweckmäßigkeit einer Schlüsseltabelle Datenbankprogrammierung 4
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Variable in main soll mit der generierten Zahl aus einer Methode ausgefüllt werden Datenbankprogrammierung 3
N Oracle SQL - Nächst kleineren Namen2 zu einem Namen aus einer Tabelle Datenbankprogrammierung 3
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
pkm Frage zu Encodingproblem bei einer Datenbankanbindung Datenbankprogrammierung 1
B Frage bei einer SQL Query Datenbankprogrammierung 3
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
J In einer bestimmten Spalte suchen mit Suchfeld (MS SQL) Datenbankprogrammierung 7
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
J Sql Anfrage nach einer Zeile beenden Datenbankprogrammierung 6
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
S Anmelden an einer msql datennbank Datenbankprogrammierung 1
F Auslesen einer .dbf-Datei, Zuordnung Index Datenbankprogrammierung 0
ralfb1105 Oracle Zwei ojdbc Driver in einer Applikation? Datenbankprogrammierung 13
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
Dimax MySQL 10 höchsten Werte aus einer Tabelle ermitteln Datenbankprogrammierung 30
L Speicherverbrauch Java Anwendung mit einer Datenbankanbindung Datenbankprogrammierung 19
temi Wie kann ich "Class" in einer DB speichern? Datenbankprogrammierung 2
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
I Oracle Wie ermitteln, welche Benutzer-(!)Tabellen in einer DB sind? Datenbankprogrammierung 1
DaCrazyJavaExpert Derby/JavaDB Wert einer Variable in der Datenbank direkt auf 1 setzten. Datenbankprogrammierung 71
D MySQL Suche nach Max Value in einer Tabelle Datenbankprogrammierung 7
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
F Java Objekte in einer Datenbank speichern Datenbankprogrammierung 4
MrSnake Hilfe bei erstellen einer DB Datenbankprogrammierung 12
M Wie übergebe ich Datenbankobjekte aus einer sql-Datenbank einer Java Klasse bzw. Instanz Datenbankprogrammierung 7
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
E Wie kann man mit einer ID-Spalte über eine Parameterübergabe auf eine Seite verweisen? Datenbankprogrammierung 17
E Warum funktioniert das Erzeugen einer View nicht? Datenbankprogrammierung 1
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
E Was sind die Vorteile von DB2 im Gegensatz zu einer Oracle-Datenbank? Datenbankprogrammierung 5
E Wie geschieht der konzeptueller Entwurf einer Datenbank Datenbankprogrammierung 1
I SQLite Objekt speichern einer Serialisierter Klasse Datenbankprogrammierung 1
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
I Inhalt einer hsqldb anzeigen Datenbankprogrammierung 1
J Realisierung einer DB in Combi mit Java Datenbankprogrammierung 13
Androbin [Serializing] Mehrere Objekte in einer einzigen Datei speichern Datenbankprogrammierung 1
S Auswahl einer Datenbank Datenbankprogrammierung 0
M Derby/JavaDB Speicherplatz einer Zeile bestimmen Datenbankprogrammierung 0
P JPA in einer größeren Java SE Anwendung Datenbankprogrammierung 0
R MySQL Blob aus DB auslesen und einer Tabelle ausgeben Datenbankprogrammierung 7
C H2 Syntax fehler beim erstellen einer Tabelle Datenbankprogrammierung 4
L MySQL Uhrzeit-Format innerhalb einer Tabelle Datenbankprogrammierung 8
2 MySQL Daten aus einer Array auslesen und MySQL Statment erstellen. Datenbankprogrammierung 5
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
E Daten einer SQL-Datenbank aus Combobox in labels schreiben Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
L Datenbankabfrage mit einer Range Datenbankprogrammierung 3
S Anbindung einer Datenbank an Java Datenbankprogrammierung 7
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
eskimo328 Datenbankverbindung ohne Passwort im Quelltext bei einer offline Anwendung Datenbankprogrammierung 14
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
Kenan89 Oracle Daten einer Tabelle in Array speichern Oracle Datenbankprogrammierung 10
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5
D Sperrverfahren in einer Datenbank Datenbankprogrammierung 6
B Feld in einer @Entity als Text speichern Datenbankprogrammierung 5
G Oracle Hibernate M:N-Beziehung mit nur einer vorhandenen Tabelle Datenbankprogrammierung 5
M MySQL Auto-Increment einer custom formatted id? Datenbankprogrammierung 2
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
M DB: Mehrere Zeilen in einer Zeile zusammenführen Datenbankprogrammierung 10
D Probleme bei der Erzeugung einer Tabelle Datenbankprogrammierung 15
D Frage zu potenziellen Leerzeichen in einer Datenbank Datenbankprogrammierung 5
H datantyp einer variable ermittel mit sql Datenbankprogrammierung 3
I Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert Datenbankprogrammierung 10
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
S Wie überprüfe ich ob die Instanz einer Connection gerade werwendet wird? Datenbankprogrammierung 4
M Ausgabe der Rows mit höchstem Wert X einer Gruppe y,z ? Datenbankprogrammierung 2
L Derby/JavaDB Fehler beim Erstellen einer Tabelle Datenbankprogrammierung 2
turmaline [Hibernate] @OneToOne: Löschen einer referenzierten Instanz Datenbankprogrammierung 2
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
B Aktuellen Stand der Datensätze einer Datenbank anzeigen Datenbankprogrammierung 9
B Die Anzahl der Datensaetze einer Datenbank anzeigen Datenbankprogrammierung 2
T Ablage von Benutzereinstellungen in einer DB Datenbankprogrammierung 7
T Inhalt einer Datenbanktabelle autom. in XML ausgeben Datenbankprogrammierung 7
M Oracle Probleme mit dem anbinden einer Oracle 10g Datenbank Datenbankprogrammierung 27
B MySQL Row und ColumnIndex aus einer JTable (mysqlDb) selectieren Datenbankprogrammierung 18
C Hibernate Liste mit allen Objekten einer Entity Datenbankprogrammierung 17
M Sinnvoller Entwurf einer Java DB-Anwendung Datenbankprogrammierung 2
E MySQL Befüllen einer MySQL DB mit großen Daten Datenbankprogrammierung 6
Airwolf89 Spaltennamen einer Tabelle zurückgeben lassen Datenbankprogrammierung 9
1 Aufruf einer View über Java Gui Datenbankprogrammierung 5
J Mit einer Abfrage Worte suchen die in Zwei Tabellen enthalten sind Datenbankprogrammierung 5
M FindBugs und PreparedStatement aus einer Datei lesen Datenbankprogrammierung 11
M Bitte um Hilfe bei Wahl einer Datenbank Datenbankprogrammierung 3
J zufällige Auswahl aus einer Tabelle Datenbankprogrammierung 4
F Problem mit einer Sql Index Datenbankprogrammierung 2
Joy jdbcodbc brücke - einbinden einer Datenbank in Java Datenbankprogrammierung 4
S Daten einer Tabelle vergleichen und ggs neuen Wert einfügen Datenbankprogrammierung 8
T Spalten einer SQL-Anfrage vorhersagen Datenbankprogrammierung 6
X Daten einer DatenbankTabelle in JTable darstellen Datenbankprogrammierung 13
A Datenbankverbindung mit einer Datenbank auf einem Webspace Datenbankprogrammierung 10

Ähnliche Java Themen


Oben