cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 27 janv. 2005 à 10:53
Si tu veux va voir mes dernières sources concernant l'envoi d'e-mail le code est complet.
piloudestetienne
Messages postés1Date d'inscriptionvendredi 1 octobre 2004StatutMembreDernière intervention27 janvier 2005 27 janv. 2005 à 10:23
bonjour
Je suis en train de programmer un petit logiciel de mailing et j'utilise cette fonction que j'ai implemante ds une classe CMailAttach (donc un .cpp et un .h)
J'ai insere les lib.h precisee ci dessus et la librairie ws2_32.lib dans les settings
Qd je compile sans utiliser la classe, il n'y a pas de probleme. Mais je cree un objet qui appel ta fonction, j'ai l'erreur suivante:
Linking...
Australian mailingDlg.obj : error LNK2001: unresolved external symbol "public: int __thiscall CMailAttach::SendMail(char *,int,char *,char *,char *,char *,char *,bool,unsigned int,char *)" (?SendMail@CMailAttach@@QAEHPADH00000_NI0@Z)
Debug/Australian mailing.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Est ce que j'est oublie un include ou une librairie...
Je n'est pas trouve ma reponse sur le net donc si tu pouvais me decoincer
En vous remerciant.
pilou
pcouderc
Messages postés2Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention 5 janvier 2005 5 janv. 2005 à 10:51
spinta
Messages postés7Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention 9 juin 2010 9 sept. 2004 à 11:39
J'ai les mêmes soucis que les autres :
- dasock n'est pas déclaré
- szRecv n'est pas déclaré
- SIZE_MSG_MAX n'est pas déclaré
etc....
Il doit manquer des déclarations....
Merci de donner un source compilable ou alors merci de donner un zip avec le projet complet.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 10 août 2004 à 11:07
Je suis sous Dev-C++ il m'affiche des erreur de compilo :
Dans la fonction int SendData(char*,bool) :
- dasock n'est pas déclaré
- szRecv n'est pas déclaré
- SIZE_MSG_MAX n'est pas déclaré
Dans la fonction int SendMail (.....):
- dassin n'est pas déclaré
- byte_copy n'est pas déclaré
- base64_enc n'est pas déclaré
Dans la fonction byte_copy(--) // Bizarre c'est que l'erreur se trouve avant donc je passe le reste
albertoC
Messages postés20Date d'inscriptionlundi 29 décembre 2003StatutMembreDernière intervention 2 juillet 2004 2 juil. 2004 à 12:21
Mephyston
Messages postés3Date d'inscriptionmardi 28 janvier 2003StatutMembreDernière intervention23 juin 2004 23 juin 2004 à 14:09
salut,
Je cherche aussi a utiliser ce code mais je ne sais tjs pas a quoi correspond ce tabela?
Merci
lescroel
Messages postés15Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention 8 février 2005 16 mars 2004 à 11:19
Salut,
j'ai toujours des soucis avec des variables que je ne connais pas.
tabela ? Qu'est ce que c'est comme donnée (char, int) ???
Elle n'est déclarée nulle part dans le source.
Et SIZE_MSG_MAX, tu l'initialise à combien ?
J'arrive à envoyer des mails mais je n'ai pas la piece jointe.
Je pense que c'est à cause de tabela et que mon encodage mime n'est pas bon.
et dasock : où est il décalré et initialisé ?
et szRecv : où est il décalré et initialisé ?
Merci d'avance pour tes réponses car moi j'ai un soucis.
cs_coins
Messages postés12Date d'inscriptionlundi 1 mars 2004StatutMembreDernière intervention20 avril 2004 15 mars 2004 à 17:58
excuse-moi! :-)
le smtp de nerim.net qui m'a renvoye le résultat comme
451. time out (quand j'ai envoie mail avec le fichier attachement d'image)
si, j'envoie mail avec fichier attachement .txt.
il me renvoie l'inofrmation comme 250 .ok
je pense que le problème n'est pas dans le serveur smtp , plustot ,
dans mon code, c'est pour cette raison, je t'ai envoyé mon fonction
pour tu peux regarder.
Par contre, ton programme marche bien avec le fichier attachement ?
parce que , si ton programme marche bien avec attachement d'image, je vais corriger la mienne .(sur le niveau syntaxe)
comment tu pense?
en tout cas, merci beaucoup qu tu peux m'aider!:-)
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 15 mars 2004 à 17:33
cela ne m'aide pas ! je t'ai demandé la session telnet!
cs_coins
Messages postés12Date d'inscriptionlundi 1 mars 2004StatutMembreDernière intervention20 avril 2004 15 mars 2004 à 17:13
Salut!
Je t'envoie mon fonction de send Mail avec attachement,
et ce matin, j'ai essayé de changer le code comme le tiens,
mais, marche pas non plus. :-(
DWORD CSMTPPOPDB::mailsend(
char *server_smtp, //nom du server SMTP
char *mail_envoyeur, //mail de l'envoyeur
char *mail_destinataire, //mail du destinataire
char *pseudo, //pseudo de l'envoyeur
char *sujet_mail, //sujet du mail
char *texte_mail, //texte du mail
char *chemin_fichier,
int niveau,
bool htmlon) //chemin du fichier a attacher
{
SOCKET sock; //declaration de la socket
struct sockaddr_in SockAddr; //adresse de la socket
struct hostent *ServerHost; //description de l'host du server
int not=0;
char *type_fichier, *nom_fichier;
long hostAddr;
DWORD problem=0;
//recuperation infos fichier :
if(chemin_fichier!=NULL)
{
nom_fichier=seek_name(chemin_fichier);
type_fichier=verif_extens(chemin_fichier);
cout<<"ok\n";
}
cout<<type_fichier<<"\n";
cout<<nom_fichier<<"coucou"<<"\n";
cout<<chemin_fichier<<"\n";
/**********************************************/
//intialisation winsock
WSADATA wsaData;
if( int err = WSAStartup( 0x0101, &wsaData ) )
{
cerr << "WSAStartup failed... Error: " << err << endl;
exit( -1 );
}
// addr du serveur
bzero( &SockAddr, sizeof(SockAddr ) );
// converti l'adresse ip 9.100.1.1 en entier long
hostAddr = inet_addr( server_smtp );
if( ( long ) hostAddr != ( long ) -1 )
bcopy( &hostAddr, &SockAddr.sin_addr, sizeof( hostAddr ) );
else // si on a donne un nom
{
ServerHost = gethostbyname( server_smtp );
if ( ServerHost == NULL )
{
cerr << "ca marche pas " << endl;
exit( 0 );
}
bcopy( ServerHost->h_addr, &SockAddr.sin_addr,ServerHost->h_length );
}
SockAddr.sin_port = htons( 25 ); // host to network port
SockAddr.sin_family = AF_INET; // AF_*** : INET=internet
// creation de la socket
//envoi des requetes au server smtp :
char Buf[1024+1]; //4k --> taille max tampon mail
sprintf(Buf,"HELO %s\r\n\0",pseudo);
SendData(Buf,true,sock);
sprintf(Buf,"MAIL FROM:<%s> \n\0",mail_envoyeur);
SendData(Buf,true,sock);
sprintf(Buf,"RCPT TO: <%s>\n\0",mail_destinataire);
SendData(Buf,true,sock);
SendData("DATA \n",true,sock);
strcpy(Buf,"");
sprintf(Buf,"From:%s<%s>\r\n\0",pseudo, mail_envoyeur);
SendData(Buf,false,sock);
sprintf(Buf,"To: <%s>\r\n\0",mail_destinataire);
SendData(Buf,false,sock);
sprintf(Buf,"Subject: %s\r\0", sujet_mail);
SendData(Buf,false,sock);
sprintf(Buf,"Date:%s\n\0",Horloge2());
SendData(Buf,false,sock);
sprintf(Buf, "X-Priority: %d\n",niveau);
SendData(Buf,false,sock);
if(chemin_fichier!=NULL) //donc, si il y a un fichier a attacher
{
//complete l'header du mail :
strcpy(Buf,"MIME-Version: 1.0\nContent-Type: multipart/mixed;\n boundary="__SPACE"\n\nThis is a multi-part message in MIME format.\n\n--__SPACE\nContent-Type: text/plain; charset="us-ascii"\nContent-Transfer-Encoding: quoted-printable\n\n");
//HTML ou pas?
SendData(Buf,false,sock);
sprintf(Buf,"%s",texte_mail);
SendData(Buf,false,sock);
FILE *infile;
infile=EncodageB64(chemin_fichier);
fseek(infile,0L,SEEK_END);
unsigned long taille = 0;
taille=ftell(infile);
/*FILE *infile=fopen(chemin_fichier,"rb");
FILE *outfile=fopen("temporai","w");
if(!infile)
cout<<"can not open the file\n";
base64_enc(infile, outfile);
infile=fopen("temporai","r");
fseek(infile,0L,SEEK_END);
unsigned long taille=0;
taille=ftell(infile);
fseek(infile,0L,SEEK_SET);
*/
/*
FILE *infile=fopen(chemin_fichier,"rb");
FILE *outfile=fopen("temporai","w");
if(!infile)
cout<<"can not open the file\n";
base64_enc(infile, outfile);
fseek(infile,0L,SEEK_END);
unsigned long taille=0;
taille=ftell(infile);
fseek(infile,0L,SEEK_SET);
fclose(infile); fclose(outfile);
infile=fopen("temporai","r");
//Retourne à la position initiale du fichier
*/
fseek(infile,0L,SEEK_SET);
//On initialise le buffer
// char *buf_lecture=new char[1024];
char *buf_lecture = (char*)malloc(taille * sizeof(char));
memset(buf_lecture,0,sizeof(buf_lecture));
while(!feof(infile)) //on lit le fichier et le mettre dans le buffe
{
fread(buf_lecture,taille,1,infile);
}
else //pas de fichier a joindre
{
sprintf(Buf,"\r\n%s\r\n.\r\n",texte_mail);
}
SendData("QUIT \r\n",true,sock);
//fermeture connection
shutdown(sock,2);
closesocket(sock);
//kill le fichier encode si il y'en a:
return problem;
}
Merci!
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 14 mars 2004 à 11:30
tu pourrais me donner les codes de retour que nerim de retourne ? toute la session en fait stp ?
cs_coins
Messages postés12Date d'inscriptionlundi 1 mars 2004StatutMembreDernière intervention20 avril 2004 13 mars 2004 à 19:47
salut, merci à toi que tu m'a répondu si rapidement,
c'est bien bizzare , je fais le fonction pareille que toi, c'est :
SendMailAttach("smtp.nerim.net"/*serveur de smtp*/,
25,
"nerim.net",
"*****@***",
"*****0***",
3,
false, //c'est à dire ceci n'est pas une mail html
"C:\\image.jpg");
au début, je pense que la problème qui vient de la syntaxe de smtp,
et ensuite, j'ai verifié la syntaxe de smtp , mais, touts sont correct !
et dans la console , il affiche touts les commandes jusqu'à le commande quit, il a bloqué.
jusqu'à maintenent , j'ai pas encore trouver la solution,
et je te remercie que tu peux m'aider!
J'attends ton réponse!
bye!
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 12 mars 2004 à 16:40
il suffit d'indiquer vers un fichier image et ca fonctionne comme indiqué dans l'exemple. peux-tu me donner ton appel à la fonction ?
cs_coins
Messages postés12Date d'inscriptionlundi 1 mars 2004StatutMembreDernière intervention20 avril 2004 12 mars 2004 à 16:18
Bonjour, Arnotic,
J'ai une question , je pense que tu peut m'aider,
en fect, j'ai reussi , envoyer les e-mail avec les attachement des fichiers txt, ton code ma beaucoup aider!
mais, j'ai pas reussi l"attachement de fichier image , t'en a les solutions?
Merci d'avance!
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 11 mars 2004 à 20:52
tout simplement car ces derniers jour ne n'étais pas mais à Amsterdam ou je me connectais que très peu à internet et donc je pouvais tout gérer !
concernant le programme la réponse est non pour une raison. c'est que la source complète sera dans un article qui sera prochainement diffusé sur DA avec son programme.
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 11 mars 2004 à 20:39
pour etre franc, j'ai un peu de mal a me servir de ta source, tu voudras pas faire un petit programme d'exemple, rapidement?
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 11 mars 2004 à 19:32
merci, mais pourquoi ne pas le faire, sans que l'on fasse des remarques?
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 11 mars 2004 à 19:27
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 11 mars 2004 à 19:01
vous pourriez au moins repondre au question que l'on vous pose !!!
cs_coins
Messages postés12Date d'inscriptionlundi 1 mars 2004StatutMembreDernière intervention20 avril 2004 7 mars 2004 à 17:01
une question, j'ai executé ton code sous la visual c++, mais, j'ai du difficulté , tu peux m'expliquer comment ca marche
Merci avancé !
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 29 févr. 2004 à 16:33
juste une petite question, quels sont les headers necessaire pour compiler ce bout de code?
lescroel
Messages postés15Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention 8 février 2005 26 févr. 2004 à 16:40
Et tabela ? Qu'est ce que c'est comme donnée (char, int) ???
Elle n'est déclarée nulle part dans le source.
Et SIZE_MSG_MAX, tu l'initialise à combien ?
J'arrive à envoyer des mails mais je n'ai pas la piece jointe.
Je pense que c'est à cause de tabela et que mon encodage mime n'est pas bon.
Merci d'avance pour tes réponses car moi j'ai un soucis.
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 26 févr. 2004 à 16:29
par contre le :
\r\n.\r\n
est important puisque c'est lui qui permet de clore la connection au serveur. si tu veux plus d'infos regarde la rfc du smtp.
lescroel
Messages postés15Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention 8 février 2005 26 févr. 2004 à 16:07
Quand je mets ces deux lignes, le mail ne passe pas
/* Fin du message */
strcpy(szBuffer, "\r\n\r\n--bb32f0a41b7155b18982fa256e5974aba--\r\n.\r\n");
if ( SendData(szBuffer, true) == 0 ) { closesocket(dasock); return 0; }
Sinon il passe
lescroel
Messages postés15Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention 8 février 2005 26 févr. 2004 à 14:56
J'ai essayé de compiler cette source mais avec quelques difficultés :
A quoi correspond tabela ?
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 19 févr. 2004 à 13:34
j'ai pas encore regardé ta source, mais justement j'en cherchais une pour envoyer un mail... je regarderais ce soir...
27 janv. 2005 à 10:53
27 janv. 2005 à 10:23
Je suis en train de programmer un petit logiciel de mailing et j'utilise cette fonction que j'ai implemante ds une classe CMailAttach (donc un .cpp et un .h)
J'ai insere les lib.h precisee ci dessus et la librairie ws2_32.lib dans les settings
Qd je compile sans utiliser la classe, il n'y a pas de probleme. Mais je cree un objet qui appel ta fonction, j'ai l'erreur suivante:
Linking...
Australian mailingDlg.obj : error LNK2001: unresolved external symbol "public: int __thiscall CMailAttach::SendMail(char *,int,char *,char *,char *,char *,char *,bool,unsigned int,char *)" (?SendMail@CMailAttach@@QAEHPADH00000_NI0@Z)
Debug/Australian mailing.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Est ce que j'est oublie un include ou une librairie...
Je n'est pas trouve ma reponse sur le net donc si tu pouvais me decoincer
En vous remerciant.
pilou
5 janv. 2005 à 10:51
http://www.codeguru.com/Cpp/I-N/internet/email/article.php/c6213
5 janv. 2005 à 10:49
1 déc. 2004 à 19:07
char tabela[64] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'v', 'x', 'y', 'z', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9', '+', '/'};
9 sept. 2004 à 11:39
- dasock n'est pas déclaré
- szRecv n'est pas déclaré
- SIZE_MSG_MAX n'est pas déclaré
etc....
Il doit manquer des déclarations....
Merci de donner un source compilable ou alors merci de donner un zip avec le projet complet.
10 août 2004 à 11:07
Dans la fonction int SendData(char*,bool) :
- dasock n'est pas déclaré
- szRecv n'est pas déclaré
- SIZE_MSG_MAX n'est pas déclaré
Dans la fonction int SendMail (.....):
- dassin n'est pas déclaré
- byte_copy n'est pas déclaré
- base64_enc n'est pas déclaré
Dans la fonction byte_copy(--) // Bizarre c'est que l'erreur se trouve avant donc je passe le reste
2 juil. 2004 à 12:21
http://www.salemioche.com/mime/mime_descr5.php
a+
alberto
23 juin 2004 à 14:09
Je cherche aussi a utiliser ce code mais je ne sais tjs pas a quoi correspond ce tabela?
Merci
16 mars 2004 à 11:19
j'ai toujours des soucis avec des variables que je ne connais pas.
tabela ? Qu'est ce que c'est comme donnée (char, int) ???
Elle n'est déclarée nulle part dans le source.
Et SIZE_MSG_MAX, tu l'initialise à combien ?
J'arrive à envoyer des mails mais je n'ai pas la piece jointe.
Je pense que c'est à cause de tabela et que mon encodage mime n'est pas bon.
et dasock : où est il décalré et initialisé ?
et szRecv : où est il décalré et initialisé ?
Merci d'avance pour tes réponses car moi j'ai un soucis.
15 mars 2004 à 17:58
le smtp de nerim.net qui m'a renvoye le résultat comme
451. time out (quand j'ai envoie mail avec le fichier attachement d'image)
si, j'envoie mail avec fichier attachement .txt.
il me renvoie l'inofrmation comme 250 .ok
je pense que le problème n'est pas dans le serveur smtp , plustot ,
dans mon code, c'est pour cette raison, je t'ai envoyé mon fonction
pour tu peux regarder.
Par contre, ton programme marche bien avec le fichier attachement ?
parce que , si ton programme marche bien avec attachement d'image, je vais corriger la mienne .(sur le niveau syntaxe)
comment tu pense?
en tout cas, merci beaucoup qu tu peux m'aider!:-)
15 mars 2004 à 17:33
15 mars 2004 à 17:13
Je t'envoie mon fonction de send Mail avec attachement,
et ce matin, j'ai essayé de changer le code comme le tiens,
mais, marche pas non plus. :-(
DWORD CSMTPPOPDB::mailsend(
char *server_smtp, //nom du server SMTP
char *mail_envoyeur, //mail de l'envoyeur
char *mail_destinataire, //mail du destinataire
char *pseudo, //pseudo de l'envoyeur
char *sujet_mail, //sujet du mail
char *texte_mail, //texte du mail
char *chemin_fichier,
int niveau,
bool htmlon) //chemin du fichier a attacher
{
SOCKET sock; //declaration de la socket
struct sockaddr_in SockAddr; //adresse de la socket
struct hostent *ServerHost; //description de l'host du server
int not=0;
char *type_fichier, *nom_fichier;
long hostAddr;
DWORD problem=0;
//recuperation infos fichier :
if(chemin_fichier!=NULL)
{
nom_fichier=seek_name(chemin_fichier);
type_fichier=verif_extens(chemin_fichier);
cout<<"ok\n";
}
cout<<type_fichier<<"\n";
cout<<nom_fichier<<"coucou"<<"\n";
cout<<chemin_fichier<<"\n";
/**********************************************/
//intialisation winsock
WSADATA wsaData;
if( int err = WSAStartup( 0x0101, &wsaData ) )
{
cerr << "WSAStartup failed... Error: " << err << endl;
exit( -1 );
}
// addr du serveur
bzero( &SockAddr, sizeof(SockAddr ) );
// converti l'adresse ip 9.100.1.1 en entier long
hostAddr = inet_addr( server_smtp );
if( ( long ) hostAddr != ( long ) -1 )
bcopy( &hostAddr, &SockAddr.sin_addr, sizeof( hostAddr ) );
else // si on a donne un nom
{
ServerHost = gethostbyname( server_smtp );
if ( ServerHost == NULL )
{
cerr << "ca marche pas " << endl;
exit( 0 );
}
bcopy( ServerHost->h_addr, &SockAddr.sin_addr,ServerHost->h_length );
}
SockAddr.sin_port = htons( 25 ); // host to network port
SockAddr.sin_family = AF_INET; // AF_*** : INET=internet
// creation de la socket
sock = socket( AF_INET, SOCK_STREAM, 0 );
if ( sock < 0)
{
cerr << " creation socket client marche pas" << endl;
exit( 0 );
}
setsockopt(sock, SOL_SOCKET, SO_DONTLINGER, (char *) ¬,
sizeof(not));
/*%%%%%%%%%%%%%%%%%%%%%%%%%%*/
if((connect(sock,(sockaddr*)&SockAddr,sizeof(SockAddr)))==SOCKET_ERROR)
{ cout<<"defais!\n"; return ERR_SOCK_CONNECT; }
cout<<"connect!";
u_long ioctl_blocking=1;
ioctlsocket(sock,FIONBIO,&ioctl_blocking);
//envoi des requetes au server smtp :
char Buf[1024+1]; //4k --> taille max tampon mail
sprintf(Buf,"HELO %s\r\n\0",pseudo);
SendData(Buf,true,sock);
sprintf(Buf,"MAIL FROM:<%s> \n\0",mail_envoyeur);
SendData(Buf,true,sock);
sprintf(Buf,"RCPT TO: <%s>\n\0",mail_destinataire);
SendData(Buf,true,sock);
SendData("DATA \n",true,sock);
strcpy(Buf,"");
sprintf(Buf,"From:%s<%s>\r\n\0",pseudo, mail_envoyeur);
SendData(Buf,false,sock);
sprintf(Buf,"To: <%s>\r\n\0",mail_destinataire);
SendData(Buf,false,sock);
sprintf(Buf,"Subject: %s\r\0", sujet_mail);
SendData(Buf,false,sock);
sprintf(Buf,"Date:%s\n\0",Horloge2());
SendData(Buf,false,sock);
sprintf(Buf, "X-Priority: %d\n",niveau);
SendData(Buf,false,sock);
if(chemin_fichier!=NULL) //donc, si il y a un fichier a attacher
{
//complete l'header du mail :
strcpy(Buf,"MIME-Version: 1.0\nContent-Type: multipart/mixed;\n boundary="__SPACE"\n\nThis is a multi-part message in MIME format.\n\n--__SPACE\nContent-Type: text/plain; charset="us-ascii"\nContent-Transfer-Encoding: quoted-printable\n\n");
//HTML ou pas?
SendData(Buf,false,sock);
sprintf(Buf,"%s",texte_mail);
SendData(Buf,false,sock);
/*---------------------fichier encode:--------------------------*/
FILE *infile;
infile=EncodageB64(chemin_fichier);
fseek(infile,0L,SEEK_END);
unsigned long taille = 0;
taille=ftell(infile);
/*FILE *infile=fopen(chemin_fichier,"rb");
FILE *outfile=fopen("temporai","w");
if(!infile)
cout<<"can not open the file\n";
base64_enc(infile, outfile);
infile=fopen("temporai","r");
fseek(infile,0L,SEEK_END);
unsigned long taille=0;
taille=ftell(infile);
fseek(infile,0L,SEEK_SET);
*/
/*
FILE *infile=fopen(chemin_fichier,"rb");
FILE *outfile=fopen("temporai","w");
if(!infile)
cout<<"can not open the file\n";
base64_enc(infile, outfile);
fseek(infile,0L,SEEK_END);
unsigned long taille=0;
taille=ftell(infile);
fseek(infile,0L,SEEK_SET);
fclose(infile); fclose(outfile);
infile=fopen("temporai","r");
//Retourne à la position initiale du fichier
*/
fseek(infile,0L,SEEK_SET);
//On initialise le buffer
// char *buf_lecture=new char[1024];
char *buf_lecture = (char*)malloc(taille * sizeof(char));
memset(buf_lecture,0,sizeof(buf_lecture));
while(!feof(infile)) //on lit le fichier et le mettre dans le buffe
{
fread(buf_lecture,taille,1,infile);
}
fclose(infile);
strcpy(Buf,"\n\n--__SPACE\n");
SendData(Buf,false,sock);
//entete de syntaxe de smtp
char entete[1024];
sprintf(entete,"Content-Type: text/plain;\n name="%s"\nContent-Transfer-Encoding: base64\nContent-Description: %s\nContent-Disposition: attachment;\n filename=%s\n",
type_fichier, nom_fichier, nom_fichier);
SendData(entete,false,sock);
// memset(Buf,0,sizeof(Buf));
//sprintf(Buf,buf_lecture);
SendData(buf_lecture,false,sock);
//SendData(Buf,false,sock);
//memset(Buf,0,sizeof(Buf));
strcpy(Buf,"\n\n--__SPACE--");
SendData(Buf,false,sock);
strcpy(Buf,"\r\n.\r\n");
SendData(Buf,true,sock);
delete buf_lecture;
}
else //pas de fichier a joindre
{
sprintf(Buf,"\r\n%s\r\n.\r\n",texte_mail);
}
SendData("QUIT \r\n",true,sock);
//fermeture connection
shutdown(sock,2);
closesocket(sock);
//kill le fichier encode si il y'en a:
return problem;
}
Merci!
14 mars 2004 à 11:30
13 mars 2004 à 19:47
c'est bien bizzare , je fais le fonction pareille que toi, c'est :
SendMailAttach("smtp.nerim.net"/*serveur de smtp*/,
25,
"nerim.net",
"*****@***",
"*****0***",
3,
false, //c'est à dire ceci n'est pas une mail html
"C:\\image.jpg");
au début, je pense que la problème qui vient de la syntaxe de smtp,
et ensuite, j'ai verifié la syntaxe de smtp , mais, touts sont correct !
et dans la console , il affiche touts les commandes jusqu'à le commande quit, il a bloqué.
jusqu'à maintenent , j'ai pas encore trouver la solution,
et je te remercie que tu peux m'aider!
J'attends ton réponse!
bye!
12 mars 2004 à 16:40
12 mars 2004 à 16:18
J'ai une question , je pense que tu peut m'aider,
en fect, j'ai reussi , envoyer les e-mail avec les attachement des fichiers txt, ton code ma beaucoup aider!
mais, j'ai pas reussi l"attachement de fichier image , t'en a les solutions?
Merci d'avance!
11 mars 2004 à 20:52
concernant le programme la réponse est non pour une raison. c'est que la source complète sera dans un article qui sera prochainement diffusé sur DA avec son programme.
11 mars 2004 à 20:39
11 mars 2004 à 19:32
11 mars 2004 à 19:27
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include
#include <winsock2.h>
pour les difficulté, explique ton problème.
11 mars 2004 à 19:01
7 mars 2004 à 17:01
Merci avancé !
29 févr. 2004 à 16:33
26 févr. 2004 à 16:40
Elle n'est déclarée nulle part dans le source.
Et SIZE_MSG_MAX, tu l'initialise à combien ?
J'arrive à envoyer des mails mais je n'ai pas la piece jointe.
Je pense que c'est à cause de tabela et que mon encodage mime n'est pas bon.
Merci d'avance pour tes réponses car moi j'ai un soucis.
26 févr. 2004 à 16:29
\r\n.\r\n
est important puisque c'est lui qui permet de clore la connection au serveur. si tu veux plus d'infos regarde la rfc du smtp.
26 févr. 2004 à 16:07
/* Fin du message */
strcpy(szBuffer, "\r\n\r\n--bb32f0a41b7155b18982fa256e5974aba--\r\n.\r\n");
if ( SendData(szBuffer, true) == 0 ) { closesocket(dasock); return 0; }
Sinon il passe
26 févr. 2004 à 14:56
A quoi correspond tabela ?
19 févr. 2004 à 13:34