home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include "util.h"
- #define MAILER "/usr/ucb/mail"
- #define LOGFILE "/usr/pub/feedback.log"
- #define LF 10
- #define MAX_ENT 1000 /* max number of variables
- that can be used */
-
- #define MY_EMAIL "downing@nyu.edu"
-
- /* header index. used to index the struct array containing the
- variables passed from mosaic */
-
- #define FIRST 0
- #define SECOND 1
- #define EMAIL 2
- #define LIST 3
- #define URGENCY 4
- #define MENU 5
- #define TEXTBOX 6
-
- typedef struct {
- char *name;
- char *val;
- } entry;
-
- void main(void)
- {
-
- entry entries[MAX_ENT];
- int cont_len,index,marker;
- char address[256];
- FILE *mdata, *log;
-
- index=marker=0;
-
-
- cont_len = atoi(getenv("CONTENT_LENGTH"));
- /*separate values and put into entries structure */
-
- for(index=0;cont_len&& (!feof(stdin));index++)
-
- {
-
- entries[index].val = fmakeword(stdin,'&',&cont_len);
-
- if ( index == TEXTBOX)
- plustospace(entries[index].val);
- else
- plusto_(entries[index].val);
- unescape_url(entries[index].val);
- }
-
- printf("Content-type: text/html%c%c",LF,LF);
- /* put together e-mail address */
- sprintf(address,"%s -s %s %s",MAILER,entries[LIST].val,MY_EMAIL);
-
- if (!(mdata=popen(address,"w"))){
- printf("<h1>Unable to open mail pipe</h1>%c",LF);
- exit(-1); }
-
- fprintf(mdata,"New message from %s %s arrived.",
- entries[FIRST].val,entries[SECOND].val);
-
- /* return html code to browser */
-
- printf("<h1>Message sent!</h1> %c",LF);
- printf("content follows:<p><hr>%c",LF);
-
- log=fopen(LOGFILE, "a");
- fprintf(log,"----------\n");
- for(index=0; index <= marker; index++)
- {
- printf("%s: %s<p>",entries[index].name,
- entries[index].val);
- fprintf(log,"%s: %s\n",entries[index].name,
- entries[index].val);
- }
-
- fprintf(log,"----------end--\n");
-
- pclose(mdata);
- fclose(log);
- exit(0);
- }
-
-
-
-