Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Drag&drop de mail de outlook vers Swing

4 réponses
Avatar
rdeman
Bonjour =E0 tous,

Je souhaiterai g=E9rer le drag&drop d'un mail de outlook vers une appli
java en awt/swing.
Le code suivant:
if (tr.isDataFlavorSupported(DataFlavor.stringFlavor)) {
dropTargetDropEvent
.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
String string =3D (String) tr
.getTransferData(DataFlavor.stringFlavor);
me renvoie un string dans lequel je n'ai que les champs du mail
affich=E9s dans outlook (de, objet, envoy=E9 et taille) s=E9par=E9s par des
'/t'
Mais je n'ai pas le corps du mail.

Je souhaiterai d'une part:
- soit r=E9cup=E9rer un "id" du mail qui me permettrait ensuite de lancer
son ouverture dans son appli native (outlook). Je suis conscient qu'
j'aurais besoin pour cel=E0 d'une API me permettant de faire du COM/DCOM
comem Jacob ou moyosoft (payant malheureusement ...)
- soit extraire le mail dans un fichier externe (.msg, comme lorsqu'on
drop le mail sur l'explorateur de fichier)
et d'autre part, indexer le mail

Si vous avez des id=E9es, je suis preneur ...
Merci d'avance

4 réponses

Avatar
TestMan
Bonjour à tous,

Je souhaiterai gérer le drag&drop d'un mail de outlook vers une appli
java en awt/swing.
Le code suivant:
if (tr.isDataFlavorSupported(DataFlavor.stringFlavor)) {
dropTargetDropEvent
.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
String string = (String) tr
.getTransferData(DataFlavor.stringFlavor);
me renvoie un string dans lequel je n'ai que les champs du mail
affichés dans outlook (de, objet, envoyé et taille) séparés par des
'/t'
Mais je n'ai pas le corps du mail.

Je souhaiterai d'une part:
- soit récupérer un "id" du mail qui me permettrait ensuite de lancer
son ouverture dans son appli native (outlook). Je suis conscient qu'
j'aurais besoin pour celà d'une API me permettant de faire du COM/DCOM
comem Jacob ou moyosoft (payant malheureusement ...)
- soit extraire le mail dans un fichier externe (.msg, comme lorsqu'on
drop le mail sur l'explorateur de fichier)
et d'autre part, indexer le mail

Si vous avez des idées, je suis preneur ...
Merci d'avance



Bonjour,

Pouvez-vous lister quels sont les data flavors disponibles lors du laché ?

A+
TM

Avatar
rdeman
tr.getTransferDataFlavors() me renvoie 27 flavors:
flavor=java.awt.datatransfer.DataFlavor[mimetype=application/x-java-ser ialized-object;representationclass=java.lang.String]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.io.Reader]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.lang.String]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.nio.CharBuffer]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=[C]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.io.InputStream;charset=UTF-16]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.nio.ByteBuffer;charset=UTF-16]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=[B;charset=UTF-16]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.io.InputStream;charset=UTF-8]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.nio.ByteBuffer;charset=UTF-8]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=[B;charset=UTF-8]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.io.InputStream;charset=UTF-16BE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.nio.ByteBuffer;charset=UTF-16BE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=[B;charset=UTF-16BE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.io.InputStream;charset=UTF-16LE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.nio.ByteBuffer;charset=UTF-16LE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=[B;charset=UTF-16LE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.io.InputStream;charset=unicode]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.io.InputStream;charset=Cp1252]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.nio.ByteBuffer;charset=Cp1252]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=[B;charset=Cp1252]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.io.InputStream;charset=ISO-8859-1]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.nio.ByteBuffer;charset=ISO-8859-1]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=[B;charset=ISO-8859-1]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.io.InputStream;charset=US-ASCII]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=java.nio.ByteBuffer;charset=US-ASCII]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representat ionclass=[B;charset=US-ASCII]

Pour chaque flavor, tr.getTransferData(flavor) contient (dans des
formats différents) uniquement les champs du mail affichés dans
outlook (de, à, objet et taille).
Je ne sais pas comment lire les favors: "representationclass=[C]"
"representationclass=[B;..."

TestMan wrote:
Bonjour à tous,

Je souhaiterai gérer le drag&drop d'un mail de outlook vers une appli
java en awt/swing.
Le code suivant:
if (tr.isDataFlavorSupported(DataFlavor.stringFlavor)) {
dropTargetDropEvent
.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
String string = (String) tr
.getTransferData(DataFlavor.stringFlavor);
me renvoie un string dans lequel je n'ai que les champs du mail
affichés dans outlook (de, objet, envoyé et taille) séparés par des
'/t'
Mais je n'ai pas le corps du mail.

Je souhaiterai d'une part:
- soit récupérer un "id" du mail qui me permettrait ensuite de lanc er
son ouverture dans son appli native (outlook). Je suis conscient qu'
j'aurais besoin pour celà d'une API me permettant de faire du COM/DCOM
comem Jacob ou moyosoft (payant malheureusement ...)
- soit extraire le mail dans un fichier externe (.msg, comme lorsqu'on
drop le mail sur l'explorateur de fichier)
et d'autre part, indexer le mail

Si vous avez des idées, je suis preneur ...
Merci d'avance



Bonjour,

Pouvez-vous lister quels sont les data flavors disponibles lors du lach é ?

A+
TM



Avatar
TestMan
tr.getTransferDataFlavors() me renvoie 27 flavors:
flavor=java.awt.datatransfer.DataFlavor[mimetype=application/x-java-serialized-object;representationclass=java.lang.String]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.io.Reader]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.lang.String]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.nio.CharBuffer]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=[C]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.io.InputStream;charset=UTF-16]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.nio.ByteBuffer;charset=UTF-16]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=[B;charset=UTF-16]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.io.InputStream;charset=UTF-8]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.nio.ByteBuffer;charset=UTF-8]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=[B;charset=UTF-8]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.io.InputStream;charset=UTF-16BE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.nio.ByteBuffer;charset=UTF-16BE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=[B;charset=UTF-16BE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.io.InputStream;charset=UTF-16LE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.nio.ByteBuffer;charset=UTF-16LE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=[B;charset=UTF-16LE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.io.InputStream;charset=unicode]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.io.InputStream;charset=Cp1252]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.nio.ByteBuffer;charset=Cp1252]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=[B;charset=Cp1252]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.io.InputStream;charset=ISO-8859-1]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.nio.ByteBuffer;charset=ISO-8859-1]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=[B;charset=ISO-8859-1]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.io.InputStream;charset=US-ASCII]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=java.nio.ByteBuffer;charset=US-ASCII]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;representationclass=[B;charset=US-ASCII]

Pour chaque flavor, tr.getTransferData(flavor) contient (dans des
formats différents) uniquement les champs du mail affichés dans
outlook (de, à, objet et taille).
Je ne sais pas comment lire les favors: "representationclass=[C]"
"representationclass=[B;..."


Bonjour,

"[C" est l'emprunte de char[]
"[B" est l'emprunte de byte[]

Essayez au cas où ...

Une autre idée, tenter de passer par le copier/coller.

Celà me semble surprenant que vous n'obteniez que l'entête du mail, mais
n'ayant pas testé je ne peux plus vous aider.

A+
TM

Avatar
rdeman
TestMan wrote:
tr.getTransferDataFlavors() me renvoie 27 flavors:
flavor=java.awt.datatransfer.DataFlavor[mimetype=application/x-java -serialized-object;representationclass=java.lang.String]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.io.Reader]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.lang.String]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.nio.CharBuffer]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=[C]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.io.InputStream;charset=UTF-16]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.nio.ByteBuffer;charset=UTF-16]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=[B;charset=UTF-16]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.io.InputStream;charset=UTF-8]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.nio.ByteBuffer;charset=UTF-8]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=[B;charset=UTF-8]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.io.InputStream;charset=UTF-16BE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.nio.ByteBuffer;charset=UTF-16BE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=[B;charset=UTF-16BE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.io.InputStream;charset=UTF-16LE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.nio.ByteBuffer;charset=UTF-16LE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=[B;charset=UTF-16LE]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.io.InputStream;charset=unicode]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.io.InputStream;charset=Cp1252]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.nio.ByteBuffer;charset=Cp1252]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=[B;charset=Cp1252]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.io.InputStream;charset=ISO-8859-1]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.nio.ByteBuffer;charset=ISO-8859-1]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=[B;charset=ISO-8859-1]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.io.InputStream;charset=US-ASCII]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=java.nio.ByteBuffer;charset=US-ASCII]
flavor=java.awt.datatransfer.DataFlavor[mimetype=text/plain;represe ntationclass=[B;charset=US-ASCII]

Pour chaque flavor, tr.getTransferData(flavor) contient (dans des
formats différents) uniquement les champs du mail affichés dans
outlook (de, à, objet et taille).
Je ne sais pas comment lire les favors: "representationclass=[C]"
"representationclass=[B;..."


Bonjour,

"[C" est l'emprunte de char[]
"[B" est l'emprunte de byte[]

effectivement


Essayez au cas où ...

même punition (pas de body)


Une autre idée, tenter de passer par le copier/coller.

je vais essayer, merci


Celà me semble surprenant que vous n'obteniez que l'entête du mail, m ais
n'ayant pas testé je ne peux plus vous aider.

A+
TM