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

[c++] envoie d'un mail avec login et mot de passe


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Points : 18
    Points
    18
    Par défaut [c++] envoie d'un mail avec login et mot de passe
    Salut,

    Je programme actuellement un utilitaire capable d'envoyer des mails avec pièces jointes.
    J'ai très bien réussi à le faire mais le truc ce que j'envoie les mails de ma boîte et le smtp n'a pas besoin de mot de passe no de login.

    Ma question est la suivante quelles sont les données à envoyer par le socket pour inclure le login + pswd?

    PS : je me demandais si il fallait pas rajouter dans mon string
    des paramètres ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string step1 = "From: "+ from +"\r\nTo: "+ to +"\r\nX-Priority: 3\r\nMINE-Version: 1.0\r\nSubject:hmmmmmmm\r\nContent-type: multipart/mixed; boundary=skfhskfhqfhozhfloqzhfilqhflqefhlqfh\r\n\r\n--bb32f0a41b7155b18982fa256e5974aba\r\nContent-Type: text/html\r\nContent-Disposition: inline\r\n\r\n";

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Tu dois utiliser le composant Indy:

    C:\Program Files\Borland\CBuilder6\Bin\indy60.bpl

    Une fois installé, dans ta palette tu a le composant TIdSMTP qui a comme variable

    -Password
    -Port
    -UserId

    Voila.

    Bonne continuation

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    je suis pas sûr de bien te suivre:

    - je n'utilise pas Borland mais vc++
    - qu'est-ce qu'un composant ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 76
    Points
    76
    Par défaut
    C'est sur que si tu n'est pas sous Borland, ça va pas le faire.
    D'une manière générale, merci de préciser dans quel environnement vous travaillez.

    Sinon, ce serai bien d'avoir un bout de code concernant ton envoi via smtp en lui même.
    Parce que c'est bien là qu'il y a des modifications à faire, et pas dans ta string. En fait, je crois que tu devrai regarder dans le RFC qui spécifie le protocole d'authentification (désolé, je connais pas le numéro de tête ) et implémenter une partie du protocole SMTP. (ESMTP en fait, du moins il me semble).
    Je l'ai fait à une époque en Delphi, c'est pas encore trop dur.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Pour la connexion j'ai ça:

    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
     
        char server_name[] = "smtp.mail.yahoo.fr";
     
        WSADATA wsaData;
        WSAStartup( 0x0101, &wsaData)
     
         struct sockaddr_in serverSockAddr; // addresse de la socket
         struct hostent * serverHostEnt; // description du host serveur
         long hostAddr; // addr du serveur
     
         init(&serverSockAddr)// initialise a zero serverSockAddr
         serverHostEnt = gethostbyname( server_name );
         bcopy( serverHostEnt->h_addr, &serverSockAddr.sin_addr,     serverHostEnt->h_length );//copie &serverSockAddr.sin_addr dans serverHostEnt->h_addr
         serverSockAddr.sin_port = htons( port ); // host to network port
         serverSockAddr.sin_family = AF_INET; // AF_*** : INET=internet
         to_server_socket = socket( AF_INET, SOCK_STREAM, 0 );
         setsockopt(to_server_socket, SOL_SOCKET, SO_DONTLINGER, (char *)  &not, sizeof(not));
         connect( to_server_socket, ( struct sockaddr * ) &serverSockAddr,
                                          sizeof( serverSockAddr ) )
         ioctlsocket ( to_server_socket, FIONBIO, &ioctl_blocking );
     
         buf[0] = 0x00;
         while( !buf[0] )
          int yeah = recv( to_server_socket, buf, 1024, 0 );
    Voila le code, j'ai pas tout mis car c'est deja pas mal le bordel mais ya les fonctions principales.
    Je mes suis aperçu qu'avec un smtp tel que yahoo, la fonction send retourne -1 donc je n'arrive mm pas à me connecter au smtp de yahoo

    Ensuite pour l'envoie du mail j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    send( to_server_socket, "HELO SendYahooMail\r\n", size, 0 );
    send( to_server_socket, expéditeur, size, 0 );
    send( to_server_socket, destinataire, size, 0 );
    send( to_server_socket, "DATA\r\n", size, 0 );
    send( to_server_socket, body, size, 0 );
    send( to_server_socket, "QUIT\r\n", size, 0 );

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 145
    Points
    145
    Par défaut
    il me semble que tu n'as mis en place que la partie du protocol SMTP
    et le smtp n'a pas de system d authent si je me souvient bien
    c'est pourquoi il exist pop2, pop3 et imap
    sur pop3 tu as USER ident et PASS a passer en plus
    mais il faut etre sur du protocol utilisé

  7. #7
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    euhh je pense que tu envoi tout simplement un mail avec ton adresse comme entete! tu mettrais chirac@yahoo.fr ca marcherai aussi!
    Rien ne se perd, rien ne se crée, tout se transforme

    ------- -------

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par alskaar
    il me semble que tu n'as mis en place que la partie du protocol SMTP
    et le smtp n'a pas de system d authent si je me souvient bien
    c'est pourquoi il exist pop2, pop3 et imap
    sur pop3 tu as USER ident et PASS a passer en plus
    mais il faut etre sur du protocol utilisé
    Oui sans doute mais là mon souci c'est que j'arrive mêm pas à me connecter au serveur Yahoo


    Citation Envoyé par jerem2000
    euhh je pense que tu envoi tout simplement un mail avec ton adresse comme entete! tu mettrais chirac@yahoo.fr ca marcherai aussi!
    Pour ça je suis pas si sûr car quand je fais ça avec un vbscript si le login et le pswd ne sont pas là ça ne marche pas (à vérifier)

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Bon j'ai l'impresion que le problème vient de l'endroit où je teste.
    Je suis dans ma boîte et quand je me sers de son smtp pas de problème,
    par contre quand j'utilise celui de yahoo impossible de se connecter.
    Je l'ai vérifié avec un bout de code vbscript qui marche chez moi mais pas
    depuis ma boîte.

    Bon ce que je vais faire c'est que je vais testé le code chez moi et je donne des news dès que possible.


    PS : Quelqu'un s'y connaissant un peu en réseau saurait m'éclairer à ce sujet à savoir : qu'est-ce qui bloque la connection?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Bon après tout ce temps je me suis remis dessus sans réél succès.
    J'ai vu qu'il y avait des exemple de codes avec le composant TIdSMTP,
    n'y a t-il pas son équivalent sous visual???

Discussions similaires

  1. \\mon_serveur avec login et mot de passe
    Par boubounne dans le forum Windows
    Réponses: 3
    Dernier message: 24/06/2008, 19h04
  2. [C# 1.0] smtp avec login et mot de passe
    Par Khrysby dans le forum C#
    Réponses: 1
    Dernier message: 12/06/2007, 10h22
  3. Lecture Registre Distant avec login et mot de passe
    Par foimpou dans le forum Langage
    Réponses: 1
    Dernier message: 16/04/2007, 11h56
  4. Réponses: 3
    Dernier message: 25/11/2005, 13h06
  5. Fenêtre avec login et mot de passe
    Par keawee dans le forum ASP
    Réponses: 5
    Dernier message: 29/08/2005, 14h30

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