home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / misc / b104_1 / c / smtpqueue < prev   
Text File  |  1993-10-04  |  1KB  |  72 lines

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4.  
  5. void usage()
  6. {
  7.   printf( "usage: smtpqueue address origin\n" );
  8.   exit( 1 );
  9. }
  10.  
  11.  
  12. void get_seq( char *name )
  13. {
  14.   FILE *seq;
  15.   int num;
  16.  
  17.   seq = fopen( "<Mail$Dir>.spool.mqueue.sequence", "r+" );
  18.   if( ! seq ) {
  19.     fprintf( stderr, "unable to open sequence file - is MailDir seen?\n" );
  20.     exit( 1 );
  21.     }
  22.   fscanf( seq, "%d", &num );
  23.   num++;
  24.   fseek( seq, 0, SEEK_SET );
  25.   fprintf( seq, "%d", num );
  26.   sprintf( name, "%d", num );
  27. }
  28.  
  29.  
  30. #define BLEN 1024
  31. FILE *in;
  32. FILE *out;
  33. char fname[30];
  34. char buff[BLEN+1];
  35.  
  36. int main( int argc, char **argv )
  37. {
  38.   char *node;
  39.  
  40.   if( argc!=3 ) usage();
  41.   in = stdin;
  42.   if( ! (node = strchr( argv[1], '@' )) ) {
  43.     fprintf( stderr, "%s is no valid address\n", argv[1] );
  44.     exit( 1 );
  45.     }
  46.   node++;
  47.  
  48.   get_seq( fname );
  49.   sprintf( buff, "<Mail$dir>.spool.mqueue.work.%s", fname );
  50.   out = fopen( buff, "w" );
  51.   if( ! out ) {
  52.     fprintf( stderr, "unable to create SMTP control file\n" );
  53.     exit( 1 );
  54.     }
  55.   fprintf( out, "%s\n%s\n%s", node, argv[2], argv[1] );
  56.   fclose( out );
  57.  
  58.   sprintf( buff, "<Mail$dir>.spool.mqueue.text.%s", fname );
  59.   out = fopen( buff, "w" );
  60.   if( ! out ) {
  61.     fprintf( stderr, "unable to create SMTP data file\n" );
  62.     sprintf( buff, "<Mail$dir>.spool.mqueue.work.%s", fname );
  63.     remove( buff );
  64.     exit( 1 );
  65.     }
  66.   while( node=fgets( buff, BLEN, in ) ) fputs( buff, out );
  67.   fclose( out );
  68.   fclose( in );
  69.   return 0;
  70. }
  71.  
  72.