Envoyer un mail a partir d'une appi c++
Fermé
vengeurstrike
Messages postés
77
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
13 juin 2010
-
20 juil. 2009 à 23:43
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 août 2009 à 15:12
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 août 2009 à 15:12
Bonjour, je souhaiterai savoir comment envoyer un mail a partir d'une application c++, il doit bien avoir un commande, non ? Merci de votre aide
A voir également:
- Envoyer un mail a partir d'une appi c++
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Gmail envoyer un mail - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Publipostage mail - Accueil - Word
- Envoyer un mail en copie cachée - Guide
13 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
21 juil. 2009 à 15:57
21 juil. 2009 à 15:57
Les commandes dont tu auras besoin :
https://linux.die.net/man/7/socket
https://linux.die.net/man/2/connect
https://linux.die.net/man/2/bind
https://linux.die.net/man/2/send
https://linux.die.net/man/2/recv
Il y a pléthores d'exemple sur internet
https://linux.die.net/man/7/socket
https://linux.die.net/man/2/connect
https://linux.die.net/man/2/bind
https://linux.die.net/man/2/send
https://linux.die.net/man/2/recv
Il y a pléthores d'exemple sur internet
mamiemando
Messages postés
33642
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 avril 2025
7 844
1 août 2009 à 14:59
1 août 2009 à 14:59
Désolée de m'en mêler mais vu l'énormité de certains messages je vais y mettre mon grain de sel :
<3>
Hein ?!!
C'est n'importe quoi :
Le protocole, c'est SMTP et c'est natif avec les apis SMTP (forcément).
Il ne faudrait quand même pas oublier que SMTP est implémenté à un moment donné. Peu importe l'API, au bout d'un moment quelqu'un a codé la gestion des sockets, écrire les bonnes choses dedans et ainsi de suite. Il n'y a pas d'histoire de natif ou pas ça ne veut rien dire.
Tu peux réimplémenter SMTP en C si tu le souhaite, il faudra juste ouvrir tes sockets, envoyer les bons messages conformément au rfc https://www.ietf.org/rfc/rfc2821.txt ce qui est un job assez monstrueux il faut l'admettre (mais faisable pour l'avoir fait).
<2>
Il n'y a absolumlent pas besoin de bibliotheque sous windows.
Il y a environ une douzaine de méthodes natives dans la Winapi pour envoyer des mails !
cf MSDN.
Justement lami20j et char sniper disent que ce n'est pas standard car un programme basé sur l'api windows ne tournera pas nativement sous linux (contrairement à une version ou tu réimplémentes la gestion de la couche smtp).
Ceci dit je suis d'accord que c'est dommage de réinventer la roue, d'autant plus que la version sous linux peut par exemple consister à simplement faire un appel système à la commande mail ou récupérer un projet opensource et l'adapter à son programme.
<18>
Completement HS, puisqu'il te dit qu'il est sous Vista !!!
Et donc sous Vista (qui est un OS Windows pour ton info, ça se fait avec les apis COM où SMTP est standard.
Non, sa réponse n'était pas HS. Ce n'est pas parce qu'il fait référence à des pages de documentation linux qu'elles ne marchent pas sous windows. Au contraire, ce sont des commandes qui font parties de la libc standard et permettent d'écrire un programme portable sur toutes les plateformes (et pas seulement windows et linux).
A noter qu'elles sont d'autant plus standard que les fonctions winsocks portent exactement le même nom.
Et ce sont effectivement bien les commandes qu'il faudra utiliser pour faire les échanges avec le serveur smtp.
<16>
Ce dont on a parlé n'est pas dur à réaliser. Si toi aussi tu veux envoyer des mails, essayes de le faire toit meme, et si besoin, on t'aidera sur les points qui posent problemes... Ce n'est pas en recopiant du code qu'on deviens codeur
Même si la réponse n'est pas franchement diplomatique et qu'elle n'apporte rien, je signale que ce que tu nous demande peut être facilement détourné pour générer du spam, ce qui rend la question limite hors charte car elle peut être détournée de sa vocation première.
Ce que je te conseille pour faire tes tests c'est d'utiliser un serveur SMTP sur ta propre machine (genre hmailserver) et de le configurer de sorte à faire un relai vers ton serveur SMTP actuel. Tu pourras ainsi regarder les logs de ton serveur SMTP et voir ce qui cloche dans les échanges de messages en cas de soucis (en comparant par exemple avec un message envoyé via thunderbird).
Si les logs du serveur ne suffisent pas ou si tu ne souhaites pas installer de serveur SMTP tu peux comparer les messages envoyé par ton programme et un client mail comme thunderbird avec des outils comme wireshark (anciennement ethereal).
Prends également bien le temps de lire la RFC. Il me semble qu'il y a notamment des contraintes genre \r\n pour faire un retour à la ligne dans l'entête du mail etc...
Bonne chance
<3>
Hein ?!!
C'est n'importe quoi :
Le protocole, c'est SMTP et c'est natif avec les apis SMTP (forcément).
Il ne faudrait quand même pas oublier que SMTP est implémenté à un moment donné. Peu importe l'API, au bout d'un moment quelqu'un a codé la gestion des sockets, écrire les bonnes choses dedans et ainsi de suite. Il n'y a pas d'histoire de natif ou pas ça ne veut rien dire.
Tu peux réimplémenter SMTP en C si tu le souhaite, il faudra juste ouvrir tes sockets, envoyer les bons messages conformément au rfc https://www.ietf.org/rfc/rfc2821.txt ce qui est un job assez monstrueux il faut l'admettre (mais faisable pour l'avoir fait).
<2>
Il n'y a absolumlent pas besoin de bibliotheque sous windows.
Il y a environ une douzaine de méthodes natives dans la Winapi pour envoyer des mails !
cf MSDN.
Justement lami20j et char sniper disent que ce n'est pas standard car un programme basé sur l'api windows ne tournera pas nativement sous linux (contrairement à une version ou tu réimplémentes la gestion de la couche smtp).
Ceci dit je suis d'accord que c'est dommage de réinventer la roue, d'autant plus que la version sous linux peut par exemple consister à simplement faire un appel système à la commande mail ou récupérer un projet opensource et l'adapter à son programme.
<18>
Completement HS, puisqu'il te dit qu'il est sous Vista !!!
Et donc sous Vista (qui est un OS Windows pour ton info, ça se fait avec les apis COM où SMTP est standard.
Non, sa réponse n'était pas HS. Ce n'est pas parce qu'il fait référence à des pages de documentation linux qu'elles ne marchent pas sous windows. Au contraire, ce sont des commandes qui font parties de la libc standard et permettent d'écrire un programme portable sur toutes les plateformes (et pas seulement windows et linux).
A noter qu'elles sont d'autant plus standard que les fonctions winsocks portent exactement le même nom.
Et ce sont effectivement bien les commandes qu'il faudra utiliser pour faire les échanges avec le serveur smtp.
<16>
Ce dont on a parlé n'est pas dur à réaliser. Si toi aussi tu veux envoyer des mails, essayes de le faire toit meme, et si besoin, on t'aidera sur les points qui posent problemes... Ce n'est pas en recopiant du code qu'on deviens codeur
Même si la réponse n'est pas franchement diplomatique et qu'elle n'apporte rien, je signale que ce que tu nous demande peut être facilement détourné pour générer du spam, ce qui rend la question limite hors charte car elle peut être détournée de sa vocation première.
Ce que je te conseille pour faire tes tests c'est d'utiliser un serveur SMTP sur ta propre machine (genre hmailserver) et de le configurer de sorte à faire un relai vers ton serveur SMTP actuel. Tu pourras ainsi regarder les logs de ton serveur SMTP et voir ce qui cloche dans les échanges de messages en cas de soucis (en comparant par exemple avec un message envoyé via thunderbird).
Si les logs du serveur ne suffisent pas ou si tu ne souhaites pas installer de serveur SMTP tu peux comparer les messages envoyé par ton programme et un client mail comme thunderbird avec des outils comme wireshark (anciennement ethereal).
Prends également bien le temps de lire la RFC. Il me semble qu'il y a notamment des contraintes genre \r\n pour faire un retour à la ligne dans l'entête du mail etc...
Bonne chance
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
21 juil. 2009 à 10:35
21 juil. 2009 à 10:35
ça dépend si tu veux utiliser une bibliothèque ou tout faire toi même.
Si tu veux tout faire toi même, il faut encoder le protocole de courriel de ton choix grâce aux socket.
Si tu veux tout faire toi même, il faut encoder le protocole de courriel de ton choix grâce aux socket.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
>
nico
21 juil. 2009 à 14:22
21 juil. 2009 à 14:22
SMTP est UN protocole de courriel, il y en a d'autre !
si tu veux, je peux te montrer un bout de code que j'ai réaliser qui envoie des messages en SMTP à partir des sockets en C++.
si tu veux, je peux te montrer un bout de code que j'ai réaliser qui envoie des messages en SMTP à partir des sockets en C++.
Il n'y a absolumlent pas besoin de bibliotheque sous windows.
Il y a environ une douzaine de méthodes natives dans la Winapi pour envoyer des mails !
cf MSDN.
Il y a environ une douzaine de méthodes natives dans la Winapi pour envoyer des mails !
cf MSDN.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
vengeurstrike
Messages postés
77
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
13 juin 2010
21 juil. 2009 à 12:23
21 juil. 2009 à 12:23
Ok mais expliquez concrètement comment faire svp
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
21 juil. 2009 à 14:26
21 juil. 2009 à 14:26
Et oui, c'est le gars du forum accro à la winapi et au group de discution MS. Avec lui c'est toujours super simple, mais il ne dit jamais comment faire.
Ce que je peux te dire, c'est qu'il n'y a rien de standard pour envoyer les mails (la winapi n'est absolument pas un standard du C++).
Pour ce qu'il faut faire : renseigne toi sur le protocole de ton choix, 80% de chance que ça soit SMTP, ensuite il faut coder. ça dépend de ton niveau en C.
Ce que je peux te dire, c'est qu'il n'y a rien de standard pour envoyer les mails (la winapi n'est absolument pas un standard du C++).
Pour ce qu'il faut faire : renseigne toi sur le protocole de ton choix, 80% de chance que ça soit SMTP, ensuite il faut coder. ça dépend de ton niveau en C.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
Laurent
1 août 2009 à 15:12
1 août 2009 à 15:12
Salut,
Quand on n'y connait rien, mieux vaut s'abstenir...
Tu devrais donc commencer par t'abstenir.
Bien que sur que si c'est standard en Win32 (apprendre à lire la doc MSDN )= !!!
Ouais, c'est la norme Microsoft, rien de plus.
Le principe d'une norme ISO (comme celle du C et du C++) est que ça soit respecté par tout le monde. En utilisant les API Win32, ce ne sera absolument pas portable. Il n'y a pas que Windows dans la vie...
Et me sors pas le couplet avec tes chiffres sortis de je ne sais où genre (99% des entreprises utilisent Windows).
Quand on n'y connait rien, mieux vaut s'abstenir...
Tu devrais donc commencer par t'abstenir.
Bien que sur que si c'est standard en Win32 (apprendre à lire la doc MSDN )= !!!
Ouais, c'est la norme Microsoft, rien de plus.
Le principe d'une norme ISO (comme celle du C et du C++) est que ça soit respecté par tout le monde. En utilisant les API Win32, ce ne sera absolument pas portable. Il n'y a pas que Windows dans la vie...
Et me sors pas le couplet avec tes chiffres sortis de je ne sais où genre (99% des entreprises utilisent Windows).
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
21 juil. 2009 à 14:31
21 juil. 2009 à 14:31
perso j'avais créé un petit programme permettant de me connecter au SMTP de mon fournisseur d'accès, et d'envoyer des mails.
tout ce qu'il faut est sur la page de wikipédia: https://fr.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol#Syntaxe_type_d.27une_session_ESMTP
juste une diférence, de ce que j'ai compris, il s'agit de ESMTP ici. pour du SMTP, la syntaxe de la première ligne envoyée est EHLO au lieu de HELO
je te conseille tout d'abord de faire un essai avec telnet, ainsi tu te rendra compte par toi meme de la simplicité de l'envoi d'un mail (sans pieces jointes)
il suffit de connaitre un tout petit peu les socket, et tu pourras le programmer sans soucis
tout ce qu'il faut est sur la page de wikipédia: https://fr.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol#Syntaxe_type_d.27une_session_ESMTP
juste une diférence, de ce que j'ai compris, il s'agit de ESMTP ici. pour du SMTP, la syntaxe de la première ligne envoyée est EHLO au lieu de HELO
je te conseille tout d'abord de faire un essai avec telnet, ainsi tu te rendra compte par toi meme de la simplicité de l'envoi d'un mail (sans pieces jointes)
il suffit de connaitre un tout petit peu les socket, et tu pourras le programmer sans soucis
vengeurstrike
Messages postés
77
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
13 juin 2010
21 juil. 2009 à 14:35
21 juil. 2009 à 14:35
ok mais je ne comprend pas ou trouver les commandes...
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
21 juil. 2009 à 14:38
21 juil. 2009 à 14:38
J'ai peur de ta réponse.
Mais avec quoi programmes tu ?
IDE, compilateur etc.
Mais avec quoi programmes tu ?
IDE, compilateur etc.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
21 juil. 2009 à 14:44
21 juil. 2009 à 14:44
comme marqué sur la page WIKI: sous telnet t'as cas faire (pour numericable par exemple)
et ca marche....
ensuite, dans ton code C++, t'as cas utiliser les memes commandes que tu envoies au serveur SMTP
HELO smtp.numericable.fr MAIL FROM: <bilou@microsoft.com> RCPT TO: <xxx@xxx.xxx> DATA Subject: sujet du message corps du message . QUIT
et ca marche....
ensuite, dans ton code C++, t'as cas utiliser les memes commandes que tu envoies au serveur SMTP
vengeurstrike
Messages postés
77
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
13 juin 2010
21 juil. 2009 à 14:57
21 juil. 2009 à 14:57
J'utillise code blocks et pour le compilateur je ne l'ai pas changé, je suis sous vista
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
21 juil. 2009 à 16:00
21 juil. 2009 à 16:00
et faire un essai sous telnet ne fera pas de mal..
tu trouves l'adresses SMTP de ton FAI: http://www.commentcamarche.net/faq/sujet 893 adresses des serveurs pop et smtp des principaux fai
dans executer tu tapes telnet smtp.numericable.fr 25 par exemple, puis les commandes que ej t'ai donné plus haut...
avec ca, tu arrivera deja a comprendre le focntionenment.
dans un premier temps, pour tonprogramme, ne gères pas els messages d'erreur...
tu trouves l'adresses SMTP de ton FAI: http://www.commentcamarche.net/faq/sujet 893 adresses des serveurs pop et smtp des principaux fai
dans executer tu tapes telnet smtp.numericable.fr 25 par exemple, puis les commandes que ej t'ai donné plus haut...
avec ca, tu arrivera deja a comprendre le focntionenment.
dans un premier temps, pour tonprogramme, ne gères pas els messages d'erreur...
Bonjour ^^
Pourrais-je avoir un code source ?
Pourrais-je avoir un code source ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
23 juil. 2009 à 08:24
23 juil. 2009 à 08:24
non.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
23 juil. 2009 à 09:09
23 juil. 2009 à 09:09
ce dont on a parlé n'est pas dur à réaliser. Si toi aussi tu veux envoyer des mails, essayes de le faire toit meme, et si besoin, on t'aidera sur les points qui posent problemes...
ce n'es tpas en recopiant du code qu'on deviens codeur
ce n'es tpas en recopiant du code qu'on deviens codeur
31 juil. 2009 à 17:16
Et donc sous Vista (qui est un OS Windows pour ton info, ça se fait avec les apis COM où SMTP est standard.
31 juil. 2009 à 17:22
Effectivement il s'est trompé.
Mais ce n'est pas non plus une raison d'être agressif.
Merci d'avoir une attitude un peu plus tranquille. Nous somme sur un forum d'entraide et personne n'est à l'abri d'une erreur.