/[notice-sender]/trunk/sender.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/sender.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 32 by dpavlin, Mon May 16 22:32:58 2005 UTC revision 48 by dpavlin, Tue May 24 15:19:44 2005 UTC
# Line 19  sender.pl - command line notify sender u Line 19  sender.pl - command line notify sender u
19    
20  In C</etc/aliases> something like:  In C</etc/aliases> something like:
21    
22   mylist: "| /path/to/sender.pl --inbox=mylist"   mylist: "| cd /path/to && ./sender.pl --inbox=mylist"
23     mylist-bounce: "| cd /path/to && ./sender.pl --inbox=mylist --bounce"
24    
25  =head2 Command options  =head2 Command options
26    
# Line 40  my $result = GetOptions( Line 41  my $result = GetOptions(
41          "inbox=s" => \$opt->{'inbox'},          "inbox=s" => \$opt->{'inbox'},
42          "debug" => \$debug,          "debug" => \$debug,
43          "verbose" => \$verbose,          "verbose" => \$verbose,
44          "email=s" => \$opt->{'email'},          "from=s" => \$opt->{'from'},
45            "driver=s" => \$opt->{'email_send_driver'},
46            "bounce" => \$opt->{'bounce'},
47  );  );
48    
49  my $nos = new Nos(  my $nos = new Nos(
# Line 74  my $list_name; Line 77  my $list_name;
77    
78  Adds new list. You can also feed list name as first line to C<STDIN>.  Adds new list. You can also feed list name as first line to C<STDIN>.
79    
80    You can also add C<--from='Full name of list'> to specify full name (comment)
81    in outgoing e-mail.
82    
83  =cut  =cut
84    
85  if ($list_name = $opt->{'new'}) {  if ($list_name = $opt->{'new'}) {
# Line 83  if ($list_name = $opt->{'new'}) { Line 89  if ($list_name = $opt->{'new'}) {
89    
90          die "need e-mail address for list (as argument or on STDIN)\n" unless ($email);          die "need e-mail address for list (as argument or on STDIN)\n" unless ($email);
91    
92          my $l = $nos->_get_list($list_name) || $nos->_add_list(          my $id = $nos->new_list(
93                  list => $list_name,                  list => $list_name,
94                    from => ($opt->{'from'} || ''),
95                  email => $email,                  email => $email,
96          ) || die "can't add list $list_name\n";          ) || die "can't add list $list_name\n";
97    
98          print "added list $list_name with ID ",$l->id,"\n";          print "added list $list_name with ID $id\n";
99    
100    
101  =item --list[=list_name]  =item --list[=list_name]
# Line 112  on that list. Line 119  on that list.
119    
120          foreach my $list (@lists) {          foreach my $list (@lists) {
121                  print $list->name," <",$list->email,">\n";                  print $list->name," <",$list->email,">\n";
122                  foreach my $user_on_list ($user_list->search(list_id => $list->id)) {                  foreach my $u ($nos->list_members( list => $list->name )) {
123                          my $user = $users->retrieve( id => $user_on_list->user_id );                          print "\t",$u->{'name'}, " <", $u->{'email'}, ">\n";
                         print "\t",$user->full_name," <", $user->email, ">\n";  
124                  }                  }
125          }          }
126    
# Line 127  argument) or read from C<STDIN>. List sh Line 133  argument) or read from C<STDIN>. List sh
133   email@example.com      Optional full name of person   email@example.com      Optional full name of person
134   dpavlin@rot13.org      Dobrica Pavlinusic   dpavlin@rot13.org      Dobrica Pavlinusic
135    
 You may use C<--email> parametar at any time to set From: e-mail address for list.  
 B<This seems somewhat cludgy, and it will probably change in future>.  
   
136  =cut  =cut
137    
138  } elsif ($list_name = $opt->{'add'}) {  } elsif ($list_name = $opt->{'add'}) {
# Line 190  add C<--verbose> flag, it will display a Line 193  add C<--verbose> flag, it will display a
193                          my $msg = $m->message_id->message;                          my $msg = $m->message_id->message;
194                          $msg =~ s/\s+/ /gs;                          $msg =~ s/\s+/ /gs;
195    
196                          $l .= sprintf(" %-10s %15s : ", $m->list_id->name, $date);                          $l .= sprintf(" %-15s %15s : ", $m->list_id->name, $date);
197                          $l .= substr($msg, 0, 79 - length($l));                          $l .= substr($msg, 0, 79 - length($l));
198    
199                          print "$l\n";                          print "$l\n";
# Line 204  add C<--verbose> flag, it will display a Line 207  add C<--verbose> flag, it will display a
207  Send e-mails waiting in queue, or with optional argument, just send messages  Send e-mails waiting in queue, or with optional argument, just send messages
208  for single list.  for single list.
209    
210    Optional argument C<--driver=smtp> forces sending using SMTP server at
211    localhost (127.0.0.1).
212    
213  =cut  =cut
214    
215  } elsif (defined($list_name = $opt->{'send'})) {  } elsif (defined($list_name = $opt->{'send'})) {
216    
217          $nos->send_queued_messages($list_name);          $nos->send_queued_messages($list_name, $opt->{'email_send_driver'});
218    
219    
220  =item --inbox=list_name  =item --inbox=list_name
221    
222  Feed incomming message back into notice sender.  Feed incomming message back into notice sender.
223    
224    Optional argument C<--bounce> define that this message is received to
225    bounce address.
226    
227  =cut  =cut
228    
229  } elsif ($opt->{'inbox'}) {  } elsif ($list_name = $opt->{'inbox'}) {
230    
231            my $message;
232            while(<>) {
233                    $message .= $_;
234            }
235    
236            $nos->inbox_message(
237                    list => $list_name,
238                    message => $message,
239                    bounce => $opt->{'bounce'},
240            ) || die "can't receive message for list $list_name";
241    
         warn "inbox option is not implemented";  
242    
243  } else  {  } else  {
244          die "see perldoc $0 for help\n";          die "see perldoc $0 for help\n";
# Line 241  Turn on debugging output from C<Class::D Line 260  Turn on debugging output from C<Class::D
260    
261  Dump more info on screen.  Dump more info on screen.
262    
 =item --email  
   
 Used to specify e-mail address where needed.  
   
263  =back  =back
264    
265    

Legend:
Removed from v.32  
changed lines
  Added in v.48

  ViewVC Help
Powered by ViewVC 1.1.26