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

C++Builder Discussion :

Recevoir un mail et l'imprimer


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut Recevoir un mail et l'imprimer
    Hello ,

    Voilà ce que je dois faire ! A un moment donné, je vais reçevoir des mails, il faudrait alors que je l'imprime sur une imprimante local ou réseau !

    J'ai carte blanche pour faire ça, tant que ça le fait !

    A vrai dire, j'ai l'intention de faire un programme qui charge un thread (je ne sais plus comment on fait ça, mais il y'a qq années, je l'ai fait ) qui regarde dans une boite mail que j'aurai paramétré (ça je ne vois vraiment pas comment faire), je récupère le mail en html ou autre et je l'imprime (bon l'impression c'est ce qui doit être le plus facile).

    1- Votre avis sur ce que j'entreprends de faire ?
    2- Avez vous une idée sur le moyen de lire une boite mail ? (composants ou autre) ?
    3- Impossible n'est pas français mais avec BCB est-ce envisagable ou c'est comme si je devais écrire un programme qui fait le café ?

    Merci de vos avis, bonne soirée .

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut kurkaine:
    Deja je me poserais la question sur quel support je vais recevoir mes Mails, sur un programme specifique, ou perso, si c'est un programme specifique est ce qu'il permet de recuperer les mails

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Hello Blondelle,

    Pas sur un support perso, mais professionnel. Donc je n'aurai pas de problème (à ce niveau), j'ai un smtp et pop.

    En fait, j'ai une "boutique" virtuelle de E-Commerce, mais plutot que d'acheter des produits, je fabrique un bon de commande (cette partie est presque géré). En bref, c'est un site internet de E-Commerce.

    Donc quand j'ai mon bon de commande, j'envoie un mail sur une boite aux lettres que j'aurai paramétré (d'ou j'ai le pop, smtp si nécessaire). C'est là que j'interviens, je dois donc détecter qu'un mail est arrivé dans la bal puis faire ce que j'ai énoncé ci-dessus.

    PS: dans mon sommeil, cette nuit courte, j'ai fait un cauchemar : est-ce que je peux lancer une impression directement sans ouvrir l'assistant d'impression de windows ?

  4. #4
    Membre chevronné
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par défaut
    Comme première approche, les composants POP3 te permettant d'accéder à ta boîte ne manquent pas ; j'utilise généralement les compos ICS, mais ceux de Indy le font bien aussi. Puis, lorsque tu auras récupéré le corps du message, il me paraît judicieux de le charger dans un composant web standard de BCB grâce auquel tu devrais pouvoir l'imprimer sans difficulté (je n'ai jamais essayé).
    Si tu as besoin de conseils pour l'utilisation du POP3 ICS, je peux te fournir du code ce soir.

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Bonjour Altau,

    Oui je veux bien le code, étant donné que mon boss me fait bosser sur 3 projets en même temps à rendre pour la semaine dernière, tu me feras gagné énormément de temps (même si tu as des liens web, des tutoriaux, des zip, je suis preneur)

    Donc si j'ai bien compris, si j'ai le pop, je peux connaitre l'arrivée d'un mail, pouvoir récupérer ce mail nouveau, le traiter comme bon me semble ?

    Merci de ton aide

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut kurkaine:
    Je te passe du code OleOutlook en ma possession il n'y que manque l'impression, j'essaye de liberer un peu de temps pour rechercher une solution
    le code:
    Code : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include <utilcls.h> //  <--- ne pas oublier
    
    #include "Outlook.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    Variant vMSOutlook, vEspaceDeNom, vDossierReception, olFolderInbox;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    // ouvrir Outlook
            try
    {
        vMSOutlook = Variant::GetActiveObject("Outlook.Application");
    }
            catch(...)
    {
        vMSOutlook = Variant::CreateObject("Outlook.Application");
    }
    vEspaceDeNom = vMSOutlook.OleFunction("GetNameSpace", "MAPI");
    /*
    Profile   Argument de type Variant facultatif. Nom du profil, en tant que valeur String, à utiliser pour la session.
    Password   Argument de type Variant facultatif. Mot de passe (le cas échéant), en tant que valeur String, associé au profil.
    ShowDialog   Argument de type Variant facultatif. Affectez-lui la valeur True pour afficher la boîte de dialogue d'ouverture de session MAPI.
    NewSession   Argument de type Variant facultatif. Affectez-lui la valeur True pour créer une session (n'utilise pas une session existante). Vous ne pouvez pas créer plusieurs sessions dans Outlook.
    Logon "myProfile", "myPassword", True, True
    */
       // Ici on utilise le profil par défaut
      vEspaceDeNom.OleFunction("Logon", "", "", true, true);
    // 3 = elements supprimes
    // 4 = boite d'envoi
    // 5 = elements envoyes
    // 6 = boite de reception
    // 9 = calendrier
    // 10 = contacts
    // 11 = boite de dialogue activer journal suivi messages
    // 12 = notes
    // 13 = taches
    // 14 = rappels
    // 15 = rappels
    // 16 = brouillons
    //
    vDossierReception = vEspaceDeNom.OlePropertyGet("GetDefaultFolder", 6);
    vDossierReception.OleFunction("Display");        
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    // fermer Outlook
    vEspaceDeNom.OleFunction("Logoff");
    vMSOutlook.OleFunction("Quit");        
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    // se positionner sur la page Outlook envoyer
    Variant vmyItem;
     
    vmyItem = vMSOutlook.OleFunction("CreateItem", 0);
    vmyItem.OleFunction("Display");        
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    // affichage du message recu
    Variant vEspaceDeNom, vDossierReception, vmyItem;
     
    vEspaceDeNom = vMSOutlook.OleFunction("GetNameSpace", "MAPI");
    vDossierReception = vEspaceDeNom.OlePropertyGet("GetDefaultFolder", 6);
    vDossierReception.OleFunction("Display");
    vmyItem = vDossierReception.OlePropertyGet("Items", 2);// ici on affiche le deuxieme message recu
    vmyItem.OleFunction("Display");
     
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button5Click(TObject *Sender)
    {
    // envoyer un message
    Variant vEspaceDeNom, vobjNewMail;
    vEspaceDeNom = vMSOutlook.OleFunction("GetNameSpace", "MAPI");
    vobjNewMail = vMSOutlook.OleFunction("CreateItem", 0);
    vobjNewMail.OleFunction("Display");
    vobjNewMail.OlePropertySet("Body", "This e-mail message was created automatically on ");
    vobjNewMail.OlePropertySet("Subject", "essai");
    vobjNewMail.OlePropertySet("To", "dupont@monfournisseur.fr.");
    vobjNewMail.OleFunction("Send");
     
    }

  7. #7
    Membre chevronné
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par défaut
    Citation Envoyé par kurkaine
    Bonjour Altau,
    Oui je veux bien le code, étant donné que mon boss me fait bosser sur 3 projets en même temps à rendre pour la semaine dernière, tu me feras gagné énormément de temps (même si tu as des liens web, des tutoriaux, des zip, je suis preneur)
    Donc si j'ai bien compris, si j'ai le pop, je peux connaitre l'arrivée d'un mail, pouvoir récupérer ce mail nouveau, le traiter comme bon me semble ?
    Bien sûr, les composants Pop3 sont faits pour ça. Je dirais que le plus compliqué serait d'afficher le contenu du message correctement, c'est-à-dire qu'un bon composant html est nécessaire.
    Quant aux sources que j'ai, ils font partie d'une application comportant une dizaine d'unités et tu risques surtout de t'y perdre mais cette manière de faire serait bien plus élégante que d'utiliser un mailer comme outlook. Je te rappelle qu'il s'agit ici des composants ICS de type évènementiel (pas comme Indy) et que leur utilisation suppose un peu d'entrainement. De plus, mes sources ne sont pas plus commentés que ça...
    Mais si tu veux les voir, pas de problème, y'a qu'à demander ! (les tutoriaux se trouvent plutôt sur le site de François Piette : http://www.overbyte.be , rubrique ICS).

  8. #8
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Coucou,

    J'espère que vous êtes encore en week, ce qui n'est pas mon cas

    Ok, Merci blondelle pour ton code, je vais commencer par faire des test dessus. Pourrais-tu me donner si tu en as, des sites ou trouver de la documentation sur les fonctions Ole ? Le pb est que dés que je cherche sur internet (pas encore en approfondi) je tombe sur mon post

    Merchiche Altau, j'ai téléchargé les composants ICS, je compte m'y pencher dessus. Toutefois, quels composants bcb sont performant pour travailler en HTML ? Quelles différences fondamentales existent-ils entre les composants évènementielles et ceux Indy ? Et quand tu par utiliser un mailer de type Outlook ? (parceque théoriquement la boîte mail que je vais utiliser aura son propre smtp, pop (c'est le fournisseur de noms de domaines 1and1, du coup la manière la plus élégante serait quand même de passer par outlook ou filezilla?)

    Merci beaucoup

  9. #9
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut kurkaine:
    J'ai mon epouse sur le dos et la c'est pire que le boulot
    Il n'y a pas de Documentation pour Ole Tu aura quelques exemples sous Delphi et VisualBasic pour le reste il faut le faire sois meme

  10. #10
    Membre chevronné
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par défaut
    Salut kurkaine,
    Citation Envoyé par kurkaine
    quels composants bcb sont performant pour travailler en HTML ?
    Là, je n'ai pas d'expérience mais je ne doute pas qu'il y en ait des tas.
    Citation Envoyé par kurkaine
    Quelles différences fondamentales existent-ils entre les composants évènementielles et ceux Indy ?
    Bien qu'on puisse trouver dans ICS des versions non évènementielles des composants (et que j'utilise d'ailleurs), le principe est que lorsqu'on exécute une action, la méthode rend la main immédiatement et on gère le résultat de l'appel dans un évènement. Cela permet d'éviter des blocages si la réponse tarde (fréquent en réseau).
    Citation Envoyé par kurkaine
    Et quand tu par utiliser un mailer de type Outlook ?
    J'évoque cela parce que Blondelle t'a fourni un code qui l'utilise. C'est certes très pratique mais c'est pas glop ; d'une part ça impose outlook et d'autre part c'est pas économique en ressources. D'où ma préférence dans l'utilisation d'un composant HTML - bien plus léger - qui ne ferait que ça.
    Citation Envoyé par kurkaine
    (parceque théoriquement la boîte mail que je vais utiliser aura son propre smtp, pop (c'est le fournisseur de noms de domaines 1and1, du coup la manière la plus élégante serait quand même de passer par outlook ou filezilla?)
    Elégante : non. Plus facile : peu être...

  11. #11
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Merci de ta réponse Altau, je n'ai pas encore eu le temps de me pencher sur le mail vs l'imprimante, je fini le site d'Ecommerce. J'espère commencer cette aprèm.

    Je pense que je tenterai au final les composants ICS...

    Je donne des news plus tard

    Merci encore

Discussions similaires

  1. Cryptage SSL pour recevoir des mail
    Par maximedrouet dans le forum Web & réseau
    Réponses: 8
    Dernier message: 10/04/2009, 14h28
  2. Recevoir par mail une info d'un formulaire
    Par nypahe dans le forum WebDev
    Réponses: 1
    Dernier message: 20/12/2006, 13h12
  3. [Script Windows]recevoir des mails et piece jointe
    Par chpog dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 30/08/2006, 10h52
  4. [JavaMail] recevoir un mail contenant une image
    Par nicotine002 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 26/08/2006, 12h38
  5. [Tomcat] Recevoir un mail à chaque exception
    Par vallica dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 24/05/2006, 08h16

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