Java Applet zum empfang externer Dateien

neomon

Mitglied
Hallo zusammen,

Nachdem man mir im Javascript Forum gesagt hatte, dass es nicht möglich sei, Dateien von ausserhalb(outlook mail per D&D auf einen Dropzone-Bereich einer webseite ziehen) im Browser zu verarbeiten, bin ich nun hier gelandet.

der alte Thread : http://www.tutorials.de/forum/javascript-ajax/288242-dropzone-fuer-externe-dateien-auf-webseite.html

hier nun mein Anliegen:

ich möchte Mails aus Outlook auf einen Bereich in einer Webseite ziehen, welcher dann die Daten der Mail extrahieren und zur Weiterverarbeitung bereitstellen kann.

also hier nochmal der grobe Ablauf:

1. Mail wird von Outlook per D&D in den Bereich auf der Seite gezogen(Dropzone)
2. Dropzone empfängt diese Mail und stellt ihre Attribute zur Weiterverarbeitung bereit(absender,subject,email body usw.)

3. Attribute werden in ein repository geschrieben

Probleme hierbei machen Schritt 1 und 2, da ich nicht weiß wie ich diesen Bereich realisieren soll, der die Mail annimmt. In meinem vorherigen Thread wurde mir geraten das ganze als Applet zu realisieren. Es gibt doch auch ein Interface Dropzone.Würdet ihr mir raten das zu implementieren und wenn müsste ich auch wissen wie ich das dann zu implementieren habe :)

Danke im Vorraus für jegliche Hilfe bzw. Antworten :)
 
Also hab das gerad mal ausprobiert aber schon beim Durchlesen fiel mir auf, dass das Thema des Artikels nicht für meine zwecke gebräuchlich ist. Ich will ja die Daten aufbereiten können wenn ich die Mail per D&D in der Dropzone empfange. D.h., die einzelnen Attribute wie Absender, Subject, Email Body usw. extrahieren können.

Was ist denn mit der anderen Möglichkeit das ganze mit nem Applet zu regeln wie es mir auch im Javascript Forum empfohlen wurde? Hat da wer Ahnung von wie ich da die Mail aus Outlook empfangen und weiterverarbeiten kann?

Bin weiterhin für jegliche Hilfe zu dem Thema dankbar :)
 
Wenn ich dich richtig verstanden hab willst du die EMails die in Outlook angezeigt werden, in eine HTML-Seite ziehen. Soweit ich weiß, wird das nicht funktionieren, da was da gedraggt werden soll nicht direkt eine EMail ist, sondern was Outlook-internes.

MFG

zEriX
 
ja das hast du richtig verstanden :)

ich bin jetzt aber mittlerweile soweit, dass ich mir ein Java Applet geschrieben habe, dass per Drag & Drop Dateien empfängt. Dieses zeigt mir wenn ich mir die DataFlavors und Classes der angenommenen Daten ausgeben lasse folgendes an:

Object type: application/x-java-serialized-object; class=java.lang.String
Object type: text/plain; class=java.io.Reader; charset=Unicode
Object type: text/plain; class=java.lang.String; charset=Unicode
Object type: text/plain; class=java.nio.CharBuffer; charset=Unicode
Object type: text/plain; class="[C"; charset=Unicode
Object type: text/plain; class=java.io.InputStream; charset=UTF-16
Object type: text/plain; class=java.nio.ByteBuffer; charset=UTF-16
Object type: text/plain; class="[B"; charset=UTF-16
Object type: text/plain; class=java.io.InputStream; charset=UTF-8
Object type: text/plain; class=java.nio.ByteBuffer; charset=UTF-8
Object type: text/plain; class="[B"; charset=UTF-8
Object type: text/plain; class=java.io.InputStream; charset=UTF-16BE
Object type: text/plain; class=java.nio.ByteBuffer; charset=UTF-16BE
Object type: text/plain; class="[B"; charset=UTF-16BE
Object type: text/plain; class=java.io.InputStream; charset=UTF-16LE
Object type: text/plain; class=java.nio.ByteBuffer; charset=UTF-16LE
Object type: text/plain; class="[B"; charset=UTF-16LE
Object type: text/plain; class=java.io.InputStream; charset=unicode
Object type: text/plain; class=java.io.InputStream; charset=Cp1252
Object type: text/plain; class=java.nio.ByteBuffer; charset=Cp1252
Object type: text/plain; class="[B"; charset=Cp1252
Object type: text/plain; class=java.io.InputStream; charset=ISO-8859-1
Object type: text/plain; class=java.nio.ByteBuffer; charset=ISO-8859-1
Object type: text/plain; class="[B"; charset=ISO-8859-1
Object type: text/plain; class=java.io.InputStream; charset=US-ASCII
Object type: text/plain; class=java.nio.ByteBuffer; charset=US-ASCII
Object type: text/plain; class="[B"; charset=US-ASCII

Object type ist hier gleichzusetzen mit dem DataFlavor.

Müsste es nicht theorethisch möglich sein, aus diesem Wirrwarr Sachen wie Subject Email Body, Absender usw. zu extrahieren
 
Achjo das wär ganz praktisch :)
Hier der Code dazu:

Code:
package Dropzone;


import java.awt.*;
import java.awt.dnd.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
 
public class CopyOfDropUploader extends JApplet implements DropTargetListener {
	  public DropTarget dt;
	  private JTextArea ta;
	  private static final long serialVersionUID = 1;
	  public String uh = "http://server.com/uploadhandler.cgi";
	  
  public void init() {
	  try {
	      duInit();
	    } catch(Exception e) {
	      e.printStackTrace();
	    }
	  }
 
  public void duInit() throws Exception {
    setSize(600,300);
    
    ta = new JTextArea();
    ta.setText("Drop files here.");
    ta.setBackground(Color.white);
    getContentPane().add(ta, BorderLayout.CENTER);
 
    // Set up our text area to receive drops...
    // This class will handle the drop events
    dt = new DropTarget(ta, this);
    setVisible(true);
  }
 
  public void dragEnter(DropTargetDragEvent dtde) {
    System.out.println("Drag Enter");
  }
 
  public void dragExit(DropTargetEvent dte) {
    System.out.println("Drag Exit");
  }
 
  public void dragOver(DropTargetDragEvent dtde) {
    System.out.println("Drag Over");
  }
 
  public void dropActionChanged(DropTargetDragEvent dtde) {
    System.out.println("Drop Action Changed");
  }
 
  public void drop(DropTargetDropEvent dtde) {
    try {
    	
      // O.k., get the dropped object and try to figure out what it is:
      Transferable tr = dtde.getTransferable();
      DataFlavor[] flavors = tr.getTransferDataFlavors();
      for (int i = 0; i < flavors.length; i++) {
	    System.out.println("Object type: " + flavors[i].getMimeType());
      }
      dtde.dropComplete(true);
      
    } catch (Exception e) {
      e.printStackTrace();
      dtde.rejectDrop();
    }
  }
 
  public static void main(String args[]) {
    new CopyOfDropUploader();
  }
}
 
Zurück