SMTP erreur commande DATA

Fermé
blabla32 Messages postés 31 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 17 février 2018 - 7 juil. 2014 à 12:24
blabla32 Messages postés 31 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 17 février 2018 - 9 juil. 2014 à 11:26
Bonjour à tous :)

Je travail actuellement sur un projet dans lequel j'ai besoin d'envoyer un mail. Je rencontre une difficultés que je n'arrive pas à résoudre en ce qui concerne la commande DATA dans une communication avec un serveur SMTP. Voici le message d'erreur:

503 5.5.0 <DATA>: Data command rejected: Improper use of SMTP command pipelining

Lorsque j'essaie "à la main" directement dans le terminal, pas de problèmes tous fonctionne bien mais au travers de mon programme je me prend cette erreur :/
Voici la partie du code source qui pose problème:

char data[] = "HELO smtp.yopmail.com\n"
"MAIL FROM:<test@gmail.com>\n"
"RCPT TO:<zaegffhgjhgfghjtertfgd@yopmail.com>\n"
"DATA\n"
"From: <test@gmail.com>\n"
"To: <zaegffhgjhgfghjtertfgd@yopmail.com>\n"
"Subject: Test\n"
"Le corp c'est ici =)\n"
".\n"
"QUIT\n";


Je n'ai pas eu trop de mal avec les sockets, à ce niveau là tous fonctionne bien. :)

Sinon je suis sous Ubuntu, c'est en C++ (évidemment ;)) et puis... Je suis là si vous avez besoin de plus d'infos :)

Merci d'avance ;)

A voir également:

1 réponse

blabla32 Messages postés 31 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 17 février 2018 1
9 juil. 2014 à 11:26
Problème résolu :)

Il fallait répartir les données dans les cellules d'un tableau multidimensionnel et non pas un "simple tableau" comme je l'avais fait.

Voici donc mon la partie de mon code source qui posait problème et qui fonctionne désormais ^^ J'ai volontairement séparé les données en 3 tableaux distincts pour des raisons pratique par rapport à la suite de mon projet, mais il est tout à fait possible de tous rassembler dans un seul tableau :)



    char HELO[4][100] = {"HELO smtp.gmail.com\n",
                        "MAIL FROM: <test@yahoo.com>\n",
                        "RCPT TO: <exemple@gmail.com>\n",
                        "DATA\r\n"};

    char DATA[4][100]   {"From: <test@yahoo.com>\n",
                        "To: <exemple@gmail.com>\n",
                        "Subject: Test\n",
                        "Le corp c'est ici =)\n"};

    char QUIT[2][100]   {".\n",
                        "QUIT\n"};

    for(int i = 0; i<4; i++)
    {
        send(sock, HELO[i], strlen(HELO[i]), 0);
        recept_S(sock);
    }
 
    for(int i = 0; i<4; i++)
        send(sock, DATA[i], strlen(DATA[i]), 0);

    for(int i = 0; i<2; i++)
    {
        send(sock, QUIT[i], strlen(QUIT[i]), 0);
        recept_S(sock);
    }
0