ENVOYER UN MAIL SIMPLE (STMP) EN VC++

Signaler
Messages postés
127
Date d'inscription
mercredi 18 juillet 2001
Statut
Membre
Dernière intervention
27 octobre 2004
-
Messages postés
1
Date d'inscription
dimanche 15 juillet 2007
Statut
Membre
Dernière intervention
5 avril 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/9863-envoyer-un-mail-simple-stmp-en-vc

Messages postés
1
Date d'inscription
dimanche 15 juillet 2007
Statut
Membre
Dernière intervention
5 avril 2008

la librairie iostream.h est en option ?????
Messages postés
7
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
1 novembre 2007

J'ai trouvé sur le web l'article RFC 821 traduit du protocole SMTP à l'adresse suivante:

http://abcdrfc.free.fr/rfc-vf/rfc821.html

Vous trouverez aussi dans Code Source celle-ci avec d'autre à l'adresse ci-dessous

http://www.ircfr.com/codes/RFC-821-SMTP-1459-IRC-1939-POP3_21210.aspx

Il donne les clauses de transmission des MAIL. En autre, des questions ont été posé sur le problème que le nom de la personne rédactrice ou réceptrice n'apparaîssent pas pour cela, il faut ajouter après la clause DATA une entête au message comme suit:

[From|To|Cc|Bcc]: <login@domain> (; <login@domain>)*

From ::= Expéditeur
To ::= Destinataire
Cc ::= Destinataire en copie
Bcc ::= Copie cachée

Si une adresse spécifiée par une clause RCPT TO n'est pas présente, alors il s'agit d'un destinataire en copie masqué. Cependant, il est trés sommaire sur les directives que l'on peut écrire dans la clause DATA. A première vue cela dépend du serveur MAIL distant car la spécification grammaticale et lexicale ne précise pas de mots spécifique.

Dans mes recherches, il faut consulter la RFC 822 qui donne le détail des balises de la clause DATA. L'adresse ci-dessous permet d'avoir quelques réponses:

http://jlr31130.free.fr/rfc822-index.html

Mais rien sur l'envoie avec des pièces jointes. J'ai, donc, regarder la source d'un message avec une pièce jointe. Dans la clause DATA, la construction semble complexe, on ajoute quelque chose comme ça:

Content-type: multipart/mixed; boundary="Boundary_(ID_Py1zk4uvrMPiov7B0rLf+Q)"
Thread-index: AcepUI3uwpvjmH8rT+mUvK8SOe4DDw==
....
Quelque chose pour faire apparaître le lien
....
--Boundary_(ID_Py1zk4uvrMPiov7B0rLf+Q)
Content-type: application/msword; name="Rapprochement OGI HORUS-DIALVEIL.doc"
Content-transfer-encoding: base64
Content-disposition: attachment; filename="Rapprochement OGI HORUS-DIALVEIL.doc"
....
Format b64 du fichier
....
--Boundary_(ID_Py1zk4uvrMPiov7B0rLf+Q)--

Pour l'instant, je n'ai fait que des test en connexion TELNET. Mais pour l'attachement d'un fichier, il suffit de déclarer qu'il s'agit d'un mail avec multi documents, d'ajouter des liens sur des balises et des balises encadrant le fichier transmis encodé en base 64.
Messages postés
7
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
1 novembre 2007

J'ai eu quelque problème pour le faire fonctionner en modifiant le code. Mais je suis arrivé, comme j'utilise Dev-C++. Pour ceux qui on des problèmes de compilation voici la solution sur les problèmes de liaison: il suffit d'indiquer la librairie de liaison "winsock" pas par la commande pragma (que l'on peut remplacer par celle de "winsock2", ce que j'ai fait) pour cela:

Projet -> Options Projet -> Onglet Paramétre
Dans la liste "Editeur de lien", y ajouter "-lws2_32"
Puis bouton "OK"

A partir de là, tous les messages de lien introuvable devraient disparaître.

Un autre point important qui ne met pas apparu de suite car on n'y pense plus. La plupart des serveurs de messagerie des FAI sont bloqués sur les clients de la FAI (Fournisseur d'Accès à Internet).

Par ex:
Si on a un compte mail sur freesurf et que notre FAI est cegetel alors le mail devra être adresser smtp.cegetel.net et non à smtp.freesurf.fr comme on pourrait le croire.

Pour l'instant, j'arrive à ouvrir la connexion avec le serveur de messagerie distant. Par contre, les commandes de construction du message ne sont pas comprises (donc pas d'envoie mais cela n'est pas très grave, je chercherais la suite demain).
Messages postés
7
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
1 octobre 2006

salut
j'ai vu ton code c'est bien,je l'ai executer.
normalement j'ai écrit
pop.mail.yahoo.com

xxx@yahoo.fr

ddd@hotmail.com


et j'ai reçu aucun message dans la boite

merci por tout
Afficher les 36 commentaires