IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Importer un fichier EML dans Outlook


Sujet :

API, COM et SDKs Delphi

  1. #1
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut Importer un fichier EML dans Outlook
    Bonjour,

    Tout est dans le titre.
    Je voudrait savoir comment importer un fichier EML dans Outlook.

    J'ai remarqué qu'en renommant un fichier EML en MHT et en le faisant glisser dans l'exploreur d'Outlook (par exemple la boite de réception), celui-ci l'acceptait.

    Je l'ai donc renommé puis j'ai récupérer son contenu que j'ai dans le HTMLBody.
    Mais ça ne fonctionne pas. Le message ressort très vilainement
    Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
          if (FileExists('C:\Users\XXX\Documents\FullMsg7.mht')) then
          begin
            SL := TStringList.Create;
            try
                SL.LoadFromFile('C:\Users\XXX\Documents\FullMsg7.mht');
                HtmlBody := SL.Text;
            finally
              FreeAndNil(SL);
            end;
     
            Mail := (Folder.Items.Add(olMailItem) as MailItem);
            Mail.Recipients.Add('toto@toto.fr');
            Mail.Subject := 'Test création mail par delphi';
            Mail.HTMLBody := HtmlBody;
            Mail.Move(SpecificFolder);
          end;

    J'ai un autre problème.
    Lorsque je créé un MailItem de toute pièce, je perds l'expéditeur.

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 721
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 721
    Points : 15 111
    Points
    15 111
    Par défaut
    Citation Envoyé par popo Voir le message
    (...) Mais ça ne fonctionne pas. Le message ressort très vilainement
    Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
          if (FileExists('C:\Users\XXX\Documents\FullMsg7.mht')) then
          begin
            SL := TStringList.Create;
            try
                SL.LoadFromFile('C:\Users\XXX\Documents\FullMsg7.mht');
                HtmlBody := SL.Text; // manque la conversion, voir la discussion citée
            finally
              FreeAndNil(SL);
            end;
          end;
    Une petite recherche rapide ici même t'aurait remonté cette discussion (bon, ça cause Java, mais l'idée est bonne).


    Citation Envoyé par popo Voir le message
    (...) J'ai un autre problème.
    Lorsque je créé un MailItem de toute pièce, je perds l'expéditeur.
    Autre problème --> autre post, c'est la règle !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    En fait, je suis tombé sur cette discussion.
    Elle ne semble cependant pas correspondre car le contenu de mon MHT n'est pas encodé (à l'exception des images).

    Le fichier MHT qui est en réalité un fichier EML est (le plus souvent) formé de plusieurs type de contenu
    -Un contenu Text/Plain correspondant au message brut en texte
    -Un contenu Text/HTML correspondant au message au format HTML
    -Plusieurs contenus Image/Gif correspondant aux images du format HTML.

    Je ne suis vraiment pas à l'aise avec les expressions régulière et aussi, je voulais éviter d'extraire la partie HTML(qui n'est pas forcément présente) et la a partie décrivant les images qui n'est pas forcément présente non plus et qui m'oblige à créer des pièce jointes et donc à altérer le message d'origine.

    La perte de l'expéditeur n'est pas un autre problème, il est lié à celui-ci car les données liées à l'expéditeur sont en lectures seules dans le MailItem.
    En fait, ce que je cherche n'est pas de crée un mail Item de toute pièce comme dans cet exemple mais bien d'importer ce fichier. Outlook accepte le glisser-déposer et transforme de lui-même ce fichier en quelque chose de lisible et dont l'expéditeur est renseigné. Je cherche à utiliser cette mécanique.

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 721
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 721
    Points : 15 111
    Points
    15 111
    Par défaut
    Citation Envoyé par popo Voir le message
    En fait, je suis tombé sur cette discussion.
    Elle ne semble cependant pas correspondre car le contenu de mon MHT n'est pas encodé (à l'exception des images).(...)
    Salut,

    tu es en train de dire que ton fichier est lisible comme du plain text ? Tu peux l'ouvrir avec le Bloc-notes ? Si oui, alors c'est juste une histoire de parsing, et là je passe.

    Mais dans ton post d'origine, tu disais que le fichier s'ouvrait "vilainement" et j'étais parti sur une idée d'encoding ou de compression, puisque tu ne décris pas ton "vilainement"...

    Tâche d'être plus précis...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    Bonjour,

    J'ai un collègue qui m'a appris que la direction technique avait encapsulé Redemption dans une DLL à eux.
    Si j'avais su, je me serais évité bien du tracas et ça vous aurait épargné du temps à vous également.

    Encore désolé.
    Je marque comme résolu.

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 721
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 721
    Points : 15 111
    Points
    15 111
    Par défaut
    Citation Envoyé par popo Voir le message
    Je marque comme résolu.
    Et comme ça dans 6 mois ou 2 ans, quelqu'un ayant le même problème et faisant une recherche tombera là-dessus en se disant « Ouais super ! » et se retrouvera le bec dans l'eau.
    (Oui, je sais, il n'y a plus le bouton Délestage qui existait il y a de nombreuses années.)

    Comme moi, d'ailleurs, parce qu'au final, je ne sais pas si c'est un problème de fichier compressé ou de tentative foirée de parsing...

    La vie des forums...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    J'ai pourtant évoqué deux manières de résoudre mon problèmes :

    La première est de parser manuellement en cherchant les lignes correspondants aux différents contenu.
    La personne dans le même cas retrouvera facilement ces lignes.
    La seconde consiste à utiliser Redemption et des exemples pululent sur le net.
    Comme je l'ai précisé, j'ai utilisé la librairie maison. Mais pour l'exemple voici, ce qui suffit.
    Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Session := CreateObject("Redemption.RDOSession");
      Inbox := Session.GetDefaultFolder(olFolderInbox);
      Msg := Inbox.Items.Add;
      Msg.Import('c:\temp\test.em', 1024);  //1024 is olRfc822
      Msg.Save;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/01/2010, 15h15
  2. importer données fichier excel dans bd mysql
    Par Hydre dans le forum Administration
    Réponses: 1
    Dernier message: 05/10/2005, 19h39
  3. Importer un fichier.psd dans flash
    Par Mélissa dans le forum Flash
    Réponses: 1
    Dernier message: 22/07/2005, 09h58
  4. Importer un fichier CSV dans un clientdataset ?
    Par mls dans le forum Bases de données
    Réponses: 7
    Dernier message: 15/04/2005, 12h35
  5. .bat pour l'import de fichier txt dans postgres
    Par pseudomh dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 25/03/2005, 00h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo