* sends standard input to people
* mail -r machine user people
* sends mail from the network
#define RMAILCMD "/usr/net/bin/sendmail"
char lettmp
[] "/tmp/maXXXXX";
char preptmp
[] "/tmp/mbXXXXX";
if (getname(me
, namebuf
) < 0) {
printf("Who are you?\n");
for (argc
--, argv
++; argc
> 0 && argv
[0][0] == '-'; argc
--, argv
++)
printmail(argc
, argv
, namebuf
);
if (!equal("network", namebuf
) && me
!= 0) {
for (cp
= argv
[1]; *cp
; cp
++)
for (cp
= argv
[1]; *cp
; cp
++)
if ((signal(SIGINT
, 01) & 01) == 0)
fout
= creat(lettmp
, 0600);
bulkmail(argc
, argv
, namebuf
);
printmail(argc
, argv
, name
)
mname
= cat("/usr/mail/", name
);
if (stat(mname
, &inode
)>=0 && inode
.nlinks
==1 &&
fopen(mname
, &fin
)>=0 && (c
= getchar())) {
printf("Saved mail in 'mbox'\n");
prepend(mname
, "mbox", getuid());
printf("In wrong directory\n");
bulkmail(argc
, argv
, from
)
printf("From %s tty%c %s", from
, ttyn1
, ctime(tbuf
));
} while (c
!= '\n' && c
!= 0);
if ((person
[0] == 'y' || person
[0] == 'Y') && person
[1] == ':')
if ((person
[0] | ' ') == 'c' && (person
[1] | ' ') == 'o' &&
(person
[2] | ' ') == 'r' && (person
[3] | ' ') == 'y' &&
if (any(':', person
) || person
[0] == 'm' && person
[1] == 's' &&
person
[2] == 'g' && person
[3] == 's' && person
[4] == 0) {
execl(RMAILCMD
,"sendmail", person
, 0);
execl("/usr/bin/sendmail", "sendmail", person
, 0);
execl("/bin/sendmail", "sendmail", person
, 0);
execl("/usr/new/msgs", "msgs", "-s", 0);
execl("/usr/bin/msgs", "msgs", "-s", 0);
register int j
= wait(&s
);
if ((s
& 0377) != 0 || (s
>> 8) == 12)
if ((him
= getuserid(person
)) == -1) {
printf("Can't send to %s.\n", person
);
if (ttyn(0)!='x' && saved
==0) {
if (accesss("dead.letter")) {
printf("Letter saved in 'dead.letter'\n");
prepend(lettmp
, "dead.letter", getuid());
printf("In wrong directory\n");
prepend(lettmp
, filep
=cat("/usr/mail/", person
), him
);
if (fcreat(preptmp
, &fout
) < 0) {
if (fopen(from
, &fin
) < 0) {
sig
= signal(SIGINT
, 01);
if (fcreat(to
, &fout
) < 0) {
if(stat(to
, &inode
) < 0 || inode
.nlinks
!= 1) {
if (fopen(preptmp
, &fin
) < 0) {
if (access(".", 2) != -1 && (stat(s1
, &inode
)<0 || access(s1
, 2)==0))