Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
962 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VC++] send mail ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] send mail ?

n°523033
husiana
Posté le 25-09-2003 à 11:17:02  profilanswer
 

salut!
 
est-il possible d'envoyer des mails avec VC++ ?!
 
j'ai vu qu'on pouvait en C# mais j'utilise VC++...?
 
quelqu'un voudrais m'offrir son aide :-p! ?
 
merci d'avance!


---------------
http://husiana.myftp.org/phpsysinfo
mood
Publicité
Posté le 25-09-2003 à 11:17:02  profilanswer
 

n°523066
skeye
Posté le 25-09-2003 à 11:45:31  profilanswer
 

husiana a écrit :

salut!
 
est-il possible d'envoyer des mails avec VC++ ?!
 
j'ai vu qu'on pouvait en C# mais j'utilise VC++...?
 
quelqu'un voudrais m'offrir son aide :-p! ?
 
merci d'avance!


Il va te falloir une dll ou un activeX dédié pour faire ça...ca doit bien exister en gratuit![:skeye]

n°523070
husiana
Posté le 25-09-2003 à 11:46:36  profilanswer
 

erf, m'en doutais, gratuit gratuit....:-/


---------------
http://husiana.myftp.org/phpsysinfo
n°523077
skeye
Posté le 25-09-2003 à 11:54:13  profilanswer
 

husiana a écrit :

erf, m'en doutais, gratuit gratuit....:-/


http://www.google.com/search?q=fre [...] 8&oe=utf-8
Doit bien y avoir un truc qui va bien là-dedans!

n°523088
husiana
Posté le 25-09-2003 à 12:04:08  profilanswer
 

Chilkat smtpQ is a companion product that works with each of Chilkat's email components and runs as a Windows Service. Each of the Chilkat email components now has a method, SendQ, that dramatically increases sending performance by queuing emails directly to the smtpQ's queue directory for immediate delivery. Chilkat SMTPQ is sold bundled with Chilkat Mail / WebMail / Email.NET and Email VC++. The price for Chilkat SMTPQ is effectively $85 as part of the bundle.
 
 
erf, c'est ce qu'il me faut :-p!


---------------
http://husiana.myftp.org/phpsysinfo
n°523097
husiana
Posté le 25-09-2003 à 12:22:04  profilanswer
 

http://www.mail-bounce.com/
 
 
TROUUUUUUUVVVVVVéééééééééé
 
c trop fort :-)!
 
a dl d'urgence! lol


---------------
http://husiana.myftp.org/phpsysinfo
n°523134
skeye
Posté le 25-09-2003 à 13:10:01  profilanswer
 

husiana a écrit :

http://www.mail-bounce.com/
 
 
TROUUUUUUUVVVVVVéééééééééé
 
c trop fort :-)!
 
a dl d'urgence! lol


J'en profite pour le noter, ca pourrait me servir! :jap:
 
[edit]
C'est moi ou c'est payant? :heink:


Message édité par skeye le 25-09-2003 à 13:12:39
n°523142
husiana
Posté le 25-09-2003 à 13:22:34  profilanswer
 

non non c gratuit, http://www.zip-compression.com/ChilkatLib.zip
 
voila, dl ca :-p!
 
y'a mm un exemple de code qui fonctionne trop bien...
 
bonne journée!


---------------
http://husiana.myftp.org/phpsysinfo
n°523143
gatorette
Posté le 25-09-2003 à 13:22:53  profilanswer
 

Effectivement ça semble playant...  :(  
 
Je pense que le plus simple sinon est d'utiliser MAPI. La seule contrainte est qu'il utilise le compte mail configuré sur la machine, mais cela marche pas trop mal (et je pense que c'est ce qui est utilisé dans C#, non ?).


---------------
each day I don't die is cheating
n°523145
husiana
Posté le 25-09-2003 à 13:32:13  profilanswer
 

// Unlock the library.  This call is only needed once at the beginning of
 // your program.  Replace the unlock code used in this example with a  
 // fresh 30-day code obtained from http://www.chilkatsoft.com/register30.asp
 
comment ils peuvent bloquer une librairie qui est utilisable?!


---------------
http://husiana.myftp.org/phpsysinfo
mood
Publicité
Posté le 25-09-2003 à 13:32:13  profilanswer
 

n°523189
husiana
Posté le 25-09-2003 à 14:24:12  profilanswer
 

la lib est utilisable 30 jours, dc une fois compilés, les pg ne doivent fonctionner "a vie"...?


---------------
http://husiana.myftp.org/phpsysinfo
n°523200
skeye
Posté le 25-09-2003 à 14:32:17  profilanswer
 

husiana a écrit :

la lib est utilisable 30 jours, dc une fois compilés, les pg ne doivent fonctionner "a vie"...?
 


bah ils doivent fonctionner 30 jours quoi... [:skeye]
Ca suffit pour décider si oui ou non tu as envie d'acheter leur brol! :sarcastic:

n°523210
skeye
Posté le 25-09-2003 à 14:38:34  profilanswer
 

J'ai trouvé ça, je sais pas ce que ca vaut:
http://axsoft.hypermart.net/products.htm#SMTPSock

n°523225
husiana
Posté le 25-09-2003 à 14:51:09  profilanswer
 

c en VB, mon visual basic "segfault"...


---------------
http://husiana.myftp.org/phpsysinfo
n°523226
husiana
Posté le 25-09-2003 à 14:51:31  profilanswer
 
n°523227
skeye
Posté le 25-09-2003 à 14:52:18  profilanswer
 

husiana a écrit :

c en VB, mon visual basic "segfault"...


bah un activeX c'est un activeX hein...ps de raison que tu puisses pas t'en servir avec VC++! :??:

n°523229
husiana
Posté le 25-09-2003 à 14:56:38  profilanswer
 

j'ai pas cherché, ce sont des .vb ou ds le genre...


---------------
http://husiana.myftp.org/phpsysinfo
n°523236
husiana
Posté le 25-09-2003 à 15:08:49  profilanswer
 
n°523242
husiana
Posté le 25-09-2003 à 15:16:37  profilanswer
 

et voila ce que ca donne sous VC++....
 

Code :
  1. il faut changer 3 choses dans le programme: le nom du serveur SMTP, l'adresse mail de l'expediteur et celle du destinataire. Il faut aussi ajouter la librairie ws2_32.lib dans Project -> Settings -> Link -> Object/library modules pour une question de link a la compilation.
  2. #include <winsock.h>
  3. #include <ostream.h>
  4. SOCKET to_server_socket = 0;
  5. char   server_name[]    = "SERVEUR"; // Changer SERVEUR par le nom du serveur
  6. int    port             = 25;
  7. void bcopy( void * source, void * destination, int size )
  8. {
  9.    char * src = ( char * ) source;
  10.    char * dst = ( char * ) destination;
  11.    for( int i=0; i<size; i++ )
  12.       dst[i] = src[i];
  13. }
  14. void bzero( void * destination, int size )
  15. {
  16.    char * dst = ( char * ) destination;
  17.    for( int i=0; i<size; i++ )
  18.       dst[i] = 0x00;
  19. }
  20. void Process( char * buffer )
  21. {
  22.    Sleep( 1000 );
  23.    cerr << "Envoye   < " << buffer << endl;
  24.    int    size   = strlen( buffer );
  25.    int    retVal = send( to_server_socket, buffer, size, 0 );
  26.    char buf[ 1024 ];
  27.    buf[0] = 0x00;
  28.    while( !buf[0] )
  29.       int yeah = recv( to_server_socket, buf, 1024, 0 );
  30.    cerr << "Recu     > " << buf << endl << endl;
  31. }
  32. int main( int argc, char *argv[] )
  33. {
  34.    int           not            = 0;
  35.    unsigned long ioctl_blocking = 1;
  36.    WSADATA wsaData;
  37.    if( int err = WSAStartup( 0x0101, &wsaData ) )
  38.    {
  39.       cerr << "WSAStartup failed... Error: " << err << endl;
  40.       exit( -1 );
  41.    }
  42.    struct sockaddr_in   serverSockAddr;    // addresse de la socket
  43.    struct hostent     * serverHostEnt;     // description du host serveur
  44.    long                 hostAddr;          // addr du serveur
  45.    bzero( &serverSockAddr, sizeof( serverSockAddr ) );
  46.    // converti l'adresse ip 9.100.1.1 en entier long
  47.    hostAddr = inet_addr( server_name );
  48.    if( ( long ) hostAddr != ( long ) -1 )
  49.       bcopy( &hostAddr, &serverSockAddr.sin_addr, sizeof( hostAddr ) );
  50.    else               // si on a donne un nom
  51.    {
  52.       serverHostEnt = gethostbyname( server_name );
  53.       if ( serverHostEnt == NULL )
  54.       {
  55.          cerr << "ca chie gethost" << endl;
  56.          exit( 0 );
  57.       }
  58.       bcopy( serverHostEnt->h_addr, &serverSockAddr.sin_addr,
  59.              serverHostEnt->h_length );
  60.    }
  61.    serverSockAddr.sin_port = htons( port );         // host to network port
  62.    serverSockAddr.sin_family = AF_INET;             // AF_*** : INET=internet
  63.    // creation de la socket
  64.    to_server_socket = socket( AF_INET, SOCK_STREAM, 0 );
  65.    if ( to_server_socket < 0)
  66.    {
  67.       cerr << "ca chie creation socket client" << endl;
  68.       exit( 0 );
  69.    }
  70.    setsockopt(to_server_socket, SOL_SOCKET, SO_DONTLINGER, (char *) &not,
  71.               sizeof(not));
  72.    // requete de connexion
  73.    if( connect( to_server_socket, ( struct sockaddr * ) &serverSockAddr,
  74.                                       sizeof( serverSockAddr ) ) < 0 )
  75.    {
  76.       cerr << "ca chie demande de connection" << endl;
  77.       exit( 0 );
  78.    }
  79.    ioctlsocket ( to_server_socket, FIONBIO, &ioctl_blocking );
  80.    char buf[ 1024 ];
  81.    buf[0] = 0x00;
  82.    while( !buf[0] )
  83.       int yeah = recv( to_server_socket, buf, 1024, 0 );
  84.    cerr << "Receive > " << buf << endl << endl;
  85.    Process( "HELO helio_denis\r\n" );
  86.    Process( "MAIL From: <ENVOYEUR>\r\n" );
  87.    Process( "RCPT To: <DESTINATAIRE>\r\n" );
  88.    Process( "DATA\r\n" );
  89.    Process( "Subject: Yeah !!!\r\n\r\nEt voici un petit mail !\r\n.\r\n" );
  90.    Process( "QUIT\r\n" );
  91.    /* fermeture de la connection */
  92.    shutdown( to_server_socket, 2 );
  93.    return( closesocket( to_server_socket ) );
  94. }



---------------
http://husiana.myftp.org/phpsysinfo
n°523247
skeye
Posté le 25-09-2003 à 15:19:29  profilanswer
 

Tu l'as testé?

n°523248
husiana
Posté le 25-09-2003 à 15:22:26  profilanswer
 

ca marche du tonner!
 
ca dechire sa maman! mm pas besoin de mettre login + pass du server mail...


---------------
http://husiana.myftp.org/phpsysinfo
n°523250
skeye
Posté le 25-09-2003 à 15:25:51  profilanswer
 

husiana a écrit :

ca marche du tonner!
 
ca dechire sa maman! mm pas besoin de mettre login + pass du server mail...


Noté!:jap:
Nettement plus pratique qu'un activeX!:D

n°523256
husiana
Posté le 25-09-2003 à 15:36:01  profilanswer
 

c clair!
 
une vieille page c++...


---------------
http://husiana.myftp.org/phpsysinfo
n°523257
chrisbk
-
Posté le 25-09-2003 à 15:36:12  profilanswer
 

la gestion d'erreur me semble a revoir [:meganne]
 
 

Code :
  1. cerr << "ca chie demande de connection" << endl


 
Sans parler du professionalisme rencontré [:ddr555]


Message édité par chrisbk le 25-09-2003 à 15:36:51
n°523694
SoWhatIn22
Posté le 26-09-2003 à 08:13:14  profilanswer
 

husiana a écrit :

ca marche du tonner!
ca dechire sa maman! mm pas besoin de mettre login + pass du server mail...


et la marmotte...
sur ton lan au boulot, ca va marcher. Par contre chez toi avec ton ISP, rêves pas trop. Si ton client mail te demande un LOGIN et PASS, c'est pas que pour faire pro...
Demandes toi seulement ce que ca va faire si tu as plusieurs utilisateurs. Tout le monde a la même identité? Faut pas trop rêver non plus. Et quand tu es connecté chez ton ISP et que toute ta petite famille a un mail différent (avec login+pass différents) sur le même compte, comment va être identifié l'emetteur?
 
Donc ca ne fonctionnera pas toujours. Ce code reflete le cas simple et idéal. Il a par contre l'énorme avantage de montrer le principe de fonctionnement et de montrer aussi que ce n'est pas hyper complex. Pas d'asn.1 ou autre bizzaretée ;-)

n°523708
husiana
Posté le 26-09-2003 à 08:51:08  profilanswer
 

pas tt a fais d'accord!
premierement parce que je l'ai testé sur pas mal de monde et ca fonctionne niquel, qu'il y est IP fixe ou non, firewall hardware ou non...
deuxiemement s'il y a plusieurs utilisateurs pas tt le monde a la mm identité, vu que...apparement t'as pas bien vu ce qu'il faisais ou ne l'as mm pas testé?...lui il s'en fou, c'est une machine ne l'oublions pas, il prends pour seule identité ton IP! il ne va pas contacter le serveur de l'expé pour voir si le mail d'expediteur bidon que tu as mis est correcte ou non.
Tu n'as pas besoin du mot de passe de couillon@wanadoo.fr pour lui envoyer un mail?! bon alors!


---------------
http://husiana.myftp.org/phpsysinfo
n°523718
skeye
Posté le 26-09-2003 à 09:13:54  profilanswer
 

sowhatin22 a écrit :


et la marmotte...
sur ton lan au boulot, ca va marcher. Par contre chez toi avec ton ISP, rêves pas trop. Si ton client mail te demande un LOGIN et PASS, c'est pas que pour faire pro...
Demandes toi seulement ce que ca va faire si tu as plusieurs utilisateurs. Tout le monde a la même identité? Faut pas trop rêver non plus. Et quand tu es connecté chez ton ISP et que toute ta petite famille a un mail différent (avec login+pass différents) sur le même compte, comment va être identifié l'emetteur?
 
Donc ca ne fonctionnera pas toujours. Ce code reflete le cas simple et idéal. Il a par contre l'énorme avantage de montrer le principe de fonctionnement et de montrer aussi que ce n'est pas hyper complex. Pas d'asn.1 ou autre bizzaretée ;-)


Il n'y a pas d'identification au niveau de l'envoi.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VC++] send mail ?

 

Sujets relatifs
[VB]Envoie de mail par Visual Basic 6fonction mail et EasyPHP
fonction mail et OVH marche plus [résolu]Fichier attaché dans un mail?
Envoi d'un mail avec VBA sous ExcelRéception de mail HTML
envoi d'un e-mailcreation sous domaine + mail ou redirection automatiquement ?
Otez les guillemets simples dans un mail envoyé via formulaireProblème de serveur SMTP pour envoi de mail en php
Plus de sujets relatifs à : [VC++] send mail ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR