|
|
1.1 root 1: From cbosg!ucbvax!decvax!ittvax!swatt Thu Mar 25 07:06:53 1982
2: Date: Wed Mar 24 20:29:56 1982
3: From: cbosg!ucbvax!decvax!ittvax!swatt
4: Subject: sendnewsmail script
5: Via: cbosgd.uucp (V3.73 [1/5/82]); 25-Mar-82 07:06:53-EST (Thu)
6: Mail-From: cbosg received by cbosgd at 25-Mar-82 07:06:51-EST (Thu)
7: To: cbosgd!mark
8: Status: R
9:
10:
11: Mark:
12:
13: I find the following handy as a mail interface to news; you don't have
14: to remake the aliases database everytime a new newsgroup gets formed.
15:
16: - Alan
17: =======================================================================
18: #! /bin/sh
19: : '/*********************************************************************
20: program: sendnewsmail
21: description: Send news items from mail
22: programmer: Alan S. Watt
23: (ittvax!swatt)
24:
25: Sccsid=@W@
26:
27: usage:
28: Not invoked by user: called as program mail alias
29: News item title and newsgroup(s) are specified on the
30: mail subject line by:
31:
32: Subj: <news item title> : <newsgroup> ...
33:
34: Several (blank separated) newsgroups may be specified;
35: the news article will be submitted to each. There is
36: no way to embed a colon character in the title, so there
37: can only be one colon on the subject line.
38:
39: arguments:
40: None
41:
42: notes:
43: To install this, put it someplace safe from system updates
44: (I use /usr/lib/news), and put an alias in the system
45: mail alias file (/usr/lib/aliases) that names this program
46: as the alias for the use "news":
47:
48: news:"|/usr/lib/news/sendnewsmail"
49:
50: history:
51: 11/11/81 original version
52: 11/19/81 fixed to properly handle default newsgroup
53: 03/13/82 changes to work with "B" netnews
54: 03/35/82 Modest documentation changes
55: *********************************************************************/'
56:
57: PROGRAM_NAME='sendnewsmail'
58: VERSION_NUMBER='@I@'
59: TOOL_LOG='/usr/advanced/logs/testlog'
60: USAGE='mail news'
61:
62:
63: : 'mail alias program to send news items through mail(1)'
64: : 'need to get newsgroup and title from subject line'
65:
66: tempf=/tmp/news$$.tmp
67: errorf=/tmp/news$$.err
68:
69: : 'copy standard input to a temporary file'
70: cat >$tempf
71:
72: : 'read the message and grab title and newsgroups from the
73: Subject line. Grab the sender from the From line.
74: Header ends on first blank line (/^$/).
75: '
76: eval `sed -n '
77: /^Subj/ {
78: s/^Subj[^ :]*[ :] *\([^:]*\):\(.*\)/title="\1";newsgroup="\2"/p
79: s/^Subj[^ :]*[ :] *\([^:]*\)$/title="\1"/p
80: }
81: /^From/ {
82: s/^[fF]rom[: ] *\([^ ]*\).*/sender="\1"/p
83: }
84: /^$/ {
85: b done
86: }
87: : done
88: ' $tempf`
89:
90: : 'default newsgroup to "general" if unspecified'
91: case $newsgroup in
92: '') newsgroup=general ;;
93: esac
94:
95: : 'make up something if the title unspecified'
96: case $title in
97: '') title="News from mail" ;;
98: esac
99:
100: : 'Submit the article to news'
101: if sed "1,/^$/d" $tempf | inews -t "$title" -n $newsgroup >$errorf 2>&1
102: then
103: : 'OK exit, do nothing'
104: else
105: : 'On errors, return article together with error messages to user'
106: : 'Change this line if your mailer does not have a -s flag'
107: mail -s 'Rejected News Article' $sender <<!EOF
108:
109: The news article you submitted could not be accepted for the reasons:
110: `cat $errorf`
111:
112: The text of the article you submitted was:
113: `cat $tempf`
114: !EOF
115:
116: fi
117:
118: : 'clean up'
119: rm -f $tempf $errorf
120:
121:
122:
123:
124:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.