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

MFC Discussion :

[WINDOWS] Invoquer le mailer par défaut + pj


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 44
    Points
    44
    Par défaut [WINDOWS] Invoquer le mailer par défaut + pj
    Bonjour,

    Je cherche à appeler le mailer par défaut depuis un programme C++, en ajoutant des pièces jointes ? (autrement dit, je cherche à préremplir un email avec le mailer par défaut de l'utilisateur)

    Existe-il une possiblite de le faire avec Visual C++?

    Merci de d'avance de vos réponses !!
    cordialement,
    lbgl

    PS. je ne veux pas utiliser MAPI, je veux que l'utilisateur puisse voir son client mail usuel.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut ,
    shellexecute devrait pouvoir faire ça comme avec un fichier html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(AfxGetMainWnd()->m_hWnd, "open","http://c.developpez.com/faq/vc/?page=Registry#RunRegistredApp", NULL, NULL, SW_SHOWNORMAL);
    à la place de l'adresse de la page on met une adresse email.
    par contre pour les pieces jointes je ne crois pas que ça soit possible ...

  3. #3
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 44
    Points
    44
    Par défaut
    Merci de la réponse !!

    Le souci c'est qu'associer une pièce jointe est un élément essentiel dans ce que je veux faire...

    Aussi quelqu'un connaît il un moyen d'aller plus loin que la solution de proposée par farscape ?

    Merci en tout cas d'avoir fait progresser la science !

    lbgl

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    je pense que ca doit dépendre enormément du client par défaut

    Peut-etre qu'il faut lui passer des paramètres

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    pour la science la commande exacte (sans les pj pour l'instant) c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(AfxGetMainWnd()->m_hWnd, "open","mailto:toto@dvp.fr", NULL, NULL, SW_SHOWNORMAL);

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    bon j'ai du neuf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(AfxGetMainWnd()->m_hWnd, "open","mailto:toto@dvp.fr?cc=cc@dvp.fr&bcc=bcc@dvp.fr&subject=le sujet&body=le texte maitre", NULL, NULL, SW_SHOWNORMAL);
    ça remplit tout lol ,j'ai pas encore trouvé la piece jointe...
    http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/predefined/mailto.asp


  7. #7
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 44
    Points
    44
    Par défaut
    Hé oui !!! on cherche en même temps semble - t-il!!

    il ya ce lien aussi :http://www.notestips.com/80256B3A007...0?OpenDocument mais ça ne mache pas chez moi !

    Merci de ton aide farscape !!

    Espérons qu'on va trouver un moyen !!

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    bingo j'ai trouvé c'est génial ce truc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(AfxGetMainWnd()->m_hWnd, "open","mailto:toto@dvp.fr?cc=cc@dvp.fr&bcc=bcc@dvp.fr&subject=le sujet&body=le texte maitre&attachment=\"\"c:\\Cxtabctrl.JPG\"\"", NULL, NULL, SW_SHOWNORMAL);
    une bonne Q/R pour la faq lol

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Citation Envoyé par farscape
    bingo j'ai trouvé c'est génial ce truc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(AfxGetMainWnd()->m_hWnd, "open","mailto:toto@dvp.fr?cc=cc@dvp.fr&bcc=bcc@dvp.fr&subject=le sujet&body=le texte maitre&attachment=\"\"c:\\Cxtabctrl.JPG\"\"", NULL, NULL, SW_SHOWNORMAL);
    une bonne Q/R pour la faq lol
    c'est clair ! nickel tout ca

  10. #10
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 44
    Points
    44
    Par défaut
    C'est fou ça marche avec ShellExecute !! (alors que j'avais essayer avec start mailto: ... et que ça ne fonctionnait pas...)

    Mais je pense qu'il ya peut être une restriction: Quelqu'un a essayé avec un client autre que outlook ??

    C'est juste pour la science !!

    Merci à tous de votre aide !

  11. #11
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    bon avec outlook ça fonctionne .
    outlook express je ne sais pas .
    avec Thunderbird la piece jointe n'apparait pas .
    je pense que la commande attachment ne doit pas etre standard .
    voila donc un demi succés...

  12. #12
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 44
    Points
    44
    Par défaut
    Avec Lotus notes ça ne fonctionne pas... il semble bien que le paramètre d'attachement ne soit pas standard du tout...

    Reste à savoir si ce paramètre a un équivalent pour les clients mail les plus usuels...

    Si quelqu'un peut faire progresser la science, il est le bienvenu !!

    Merci encore,
    lbgl

  13. #13
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ca n'a pas l'air de marcher avec outlook express non plus

  14. #14
    Membre actif Avatar de Rupella
    Inscrit en
    Février 2005
    Messages
    286
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 286
    Points : 257
    Points
    257
    Par défaut
    Salut

    Pour Outlook, Outlook Express, je ne sais pas pour ThunderBird, vous pouvez utiliser MAPI pour envoyer des messages. Sans forcément aller à fond dedans, SimpleMapi permet l'envoi de messages avec pièces attachées.

    Pour donner une idée :
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsample98/html/vcsmpsimplemapi.asp

    Pour Lotus, il faut utiliser une API propre à eux...

  15. #15
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 44
    Points
    44
    Par défaut
    Merci de cette précision !

    Cependant nous ne cherchons pas comment envoyer un email mais comment faire apparaitre le client par défaut avec les pj déjà placées. L'utilisateur n'aurait plus qu'à taper son texte (body) et envoyer.

    Si quelqu'un sait faire ça en C++ je sui preneur !!

    lbgl

  16. #16
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 44
    Points
    44
    Par défaut
    Avec un peu de recherche et de patience voila comment faire pour ouvrir le mailer par défaut en pouvant préemplir tous les champs y compris les pièces jointes.

    Merci à tous !!

    NB: C'est un exemple rapide... En particulier, la variable 'desc' requiert peut-être d'être mieux renseignée (j'ai mis NULL presque partout ...)

    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
    typedef ULONG (FAR PASCAL *MAPIFUNC) (LHANDLE lhSession, ULONG ulUIParam,
    									  lpMapiMessage lpMessage, FLAGS flFlags,
    									  ULONG ulReserved);
     
    int _tmain(int , _TCHAR* [])
    {	
    	const HINSTANCE hMAPILib = ::LoadLibrary(_T("MAPI32.DLL"));
     
    	if (hMAPILib)
    	{
    		MAPIFUNC lpMAPISendMail = (MAPIFUNC) GetProcAddress(hMAPILib, "MAPISendMail");
     
    		if (lpMAPISendMail != NULL)
    		{
    			static MapiMessage Msg;
    			memset(&Msg, 0, sizeof(Msg));
     
    			MapiFileDesc desc =
    			{
    				0,            /* Reserved for future use (must be 0)     */
    				0,         /* Flags                                   */
    				0,             /* character in text to be replaced by attachment */
    				"d:\\classeur1.XLS",         /* Full path name of attachment file       */
    				NULL,        /* Original file name (optional)           */
    				NULL           /* Attachment file type (can be lpMapiFileTagExt) */
    			} ;
     
    			Msg.lpszSubject  = "Put subject text here";
    			Msg.lpszNoteText = "Put message text here";
    			Msg.nFileCount = 1;
    			Msg.lpFiles = &desc;
    			lpMAPISendMail(NULL, NULL, &Msg, (FLAGS) (MAPI_LOGON_UI | MAPI_DIALOG), 0);
    		}
     
    		VERIFY(::FreeLibrary(hMAPILib));
    	}
    return 1;
    }

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

Discussions similaires

  1. commande windows pour recuperer navigateur par défaut
    Par choupeo dans le forum Langage
    Réponses: 13
    Dernier message: 21/12/2007, 21h43
  2. Réponses: 1
    Dernier message: 12/01/2007, 10h19
  3. Réponses: 8
    Dernier message: 16/11/2006, 08h28
  4. Réponses: 1
    Dernier message: 07/08/2006, 12h04
  5. Réponses: 1
    Dernier message: 10/04/2006, 09h53

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