Example #1
0
void travail(FILE *in, FILE *out)
{ 
  char ligne[TAILLEMAXLIGNE];
  char tampon[TAILLEMAXLIGNE];
  int nombre_de_messages, taille_boite;

  /* reception banniere */
  lireligne(in,ligne);
  if(ligne[0] != '+') {
    printf("Pas de banniere. Abandon\n");
    exit(1);
  };

  /* envoi identification */
  sprintf(tampon,"USER %s", username);
  ecrireligne(out,tampon);

  lireligne(in,ligne);
  if(ligne[0] != '+') {
    printf("USER rejeté. Abandon\n");
    exit(1);
  };

  /* envoi mot de passe */
  sprintf(tampon,"PASS %s", password);
  ecrireligne(out,tampon);

  lireligne(in,ligne);
  if(ligne[0] != '+') {
    printf("PASS rejeté. Abandon\n");
    exit(1);
  };

  /* La reponse precedente contient souvent le nombre de messages
     de la boite, mais elle n'est pas tres precise dans la RFC,
     et donc differe selon les versions de service POP3.
     Pour recuperer le nombre de messages de maniere fiable,
     utiliser la commande STAT */

  /* envoi STAT pour recuperer nb messages */
  sprintf(tampon,"STAT");
  ecrireligne(out,tampon);

  /* reception de +OK n mm */
  lireligne(in,ligne);
  sscanf(ligne+3,"%d %d", &nombre_de_messages, &taille_boite);
  
  printf("Il y a %d messages dans la boite.\n",nombre_de_messages);
  printf("La taille totale est de %d octets.\n",taille_boite);

  /* fermeture */
  ecrireligne(out,"QUIT");

  lireligne(in,ligne);
}
Example #2
0
int main(void)
{
  int l, i, espace, k, espacement;
  char ligne[MAXLIGNE];

  while((l = lireligne(ligne, MAXLIGNE)) > 0)
    {
      for(i = 0, k = 0; i < l ; i++)
	{
	  if(ligne[i] == '\t')
	    {
	      espacement = TAILLE - (k % TAILLE);

	      for(espace = 1 ; espace <= espacement ; espace++)
		{
		  putchar(' ');
		  k++;
		}
	    }

	  else
	    {
	      putchar(ligne[i]);
	      k++;
	    }
	}
    }
  
  return 0;
}