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
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:

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
1
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.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > Laurent
31 juil. 2009 à 17:22
Salut,

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.
0
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
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
1
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
ç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.
0
Hein ?!!
C'est n'importe quoi :
Le protocole, c'est SMTP et c'est natif avec les apis SMTP (forcément).
0
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
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++.
0
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.
0

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
Ok mais expliquez concrètement comment faire svp
0
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
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.
0
Bien que sur que si c'est standard en Win32 (apprendre à lire la doc MSDN )= !!!
Quand on n'y connait rien, mieux vaut s'abstenir...
0
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
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).
0
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
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
0
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
ok mais je ne comprend pas ou trouver les commandes...
0
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
J'ai peur de ta réponse.
Mais avec quoi programmes tu ?
IDE, compilateur etc.
0
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
comme marqué sur la page WIKI: sous telnet t'as cas faire (pour numericable par exemple)

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
0
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
J'utillise code blocks et pour le compilateur je ne l'ai pas changé, je suis sous vista
0
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
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...
0
Bonjour ^^

Pourrais-je avoir un code source ?
0
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
non.
0
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
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
0