- sprintf(buf, "mail %s <%snotice", dest, maildir);
- system(buf);
+ {
+ char hostname[MAXHOSTNAMELEN];
+ FILE *nf, *popen();
+ struct passwd *passp;
+
+ sprintf(buf, "%s %s", _PATH_MAIL, dest);
+ if ((nf = popen(buf, "w")) == NULL)
+ xfatal("cannot pipe to %s", _PATH_MAIL);
+ passp = getpwuid(getuid());
+ if (passp == 0){
+ pclose(nf);
+ xfatal("Who are you?");
+ }
+ gethostname(hostname, sizeof(hostname));
+ fprintf(nf, "Subject: %s@%s sent you secret mail\n",
+ passp->pw_name, hostname);
+ fprintf(nf,
+ "Your secret mail can be read on host %s using ``xget''.\n",
+ hostname);
+ pclose(nf);
+ }