/[notice-sender]/trunk/Nos.pm
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/Nos.pm

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

revision 21 by dpavlin, Sun May 15 21:35:15 2005 UTC revision 22 by dpavlin, Sun May 15 21:52:56 2005 UTC
# Line 57  sub new { Line 57  sub new {
57          my $self = {@_};          my $self = {@_};
58          bless($self, $class);          bless($self, $class);
59    
60            croak "need at least dsn" unless ($self->{'dsn'});
61    
62          $self->{'loader'} = Class::DBI::Loader->new(          $self->{'loader'} = Class::DBI::Loader->new(
63                  debug           => $self->{'debug'},                  debug           => $self->{'debug'},
64                  dsn             => $self->{'dsn'},                  dsn             => $self->{'dsn'},
# Line 66  sub new { Line 68  sub new {
68  #               additional_classes      => qw/Class::DBI::AbstractSearch/,  #               additional_classes      => qw/Class::DBI::AbstractSearch/,
69  #               additional_base_classes => qw/My::Stuff/,  #               additional_base_classes => qw/My::Stuff/,
70                  relationships   => 1,                  relationships   => 1,
71          );          ) || croak "can't init Class::DBI::Loader";
72    
73          $self ? return $self : return undef;          $self ? return $self : return undef;
74  }  }
75    
76  =head2 update_list_email  =head2 send_queued_messages
77    
78  Update list e-mail address  Send queued messages or just ones for selected list
79    
80   $noc->update_list_email($list, 'foobar@example.com');   $noc->send_queued_messages("my list");
81    
82  =cut  =cut
83    
84  sub update_list_email {  sub send_queued_messages {
85          my $self = shift;          my $self = shift;
86    
87            my $list_name = shift;
88    
89  }          my $lists = $self->{'loader'}->find_class('lists');
90            my $queue = $self->{'loader'}->find_class('queue');
91  =head2 send          my $user_list = $self->{'loader'}->find_class('user_list');
92            my $sent = $self->{'loader'}->find_class('sent');
93  Send a message using configured mailer.  
94            my $my_q;
95   $nos->send("message with headers");          if ($list_name ne '') {
96                    my $l_id = $lists->search_like( name => $list_name )->first ||
97  =cut                          croak "can't find list $list_name";
98                    $my_q = $queue->search_like( list_id => $l_id ) ||
99  sub send_email {                          croak "can't find list $list_name";
100          my $self = shift;          } else {
101                    $my_q = $queue->retrieve_all;
102          my $message = shift || return;          }
103    
104            while (my $m = $my_q->next) {
105                    next if ($m->all_sent);
106    
107                    print "sending message ",$m->message_id," enqueued on ",$m->date," to list ",$m->list_id->name,"\n";
108                    my $msg = $m->message_id->message;
109    
110                    foreach my $u ($user_list->search(list_id => $m->list_id)) {
111    
112                            if ($sent->search( message_id => $m->message_id, user_id => $u->user_id )) {
113                                    print "SKIP ",$u->user_id->email," message allready sent\n";
114                            } else {
115                                    print "\t",$u->user_id->email,"\n";
116    
117                                    my $hdr = "From: " . $u->list_id->name . " <" . $u->list_id->email . ">\n" .
118                                            "To: " . $u->user_id->full_name . " <". $u->user_id->email. ">\n";
119    
120                                    # FIXME do real sending :-)
121                                    send IO => "$hdr\n$msg";
122    
123                                    $sent->create({
124                                            message_id => $m->message_id,
125                                            user_id => $u->user_id,
126                                    });
127                                    $sent->dbi_commit;
128                            }
129                    }
130                    $m->all_sent(1);
131                    $m->update;
132                    $m->dbi_commit;
133            }
134    
         send IO => $message;  
135  }  }
136    
137  =head2 EXPORT  =head2 EXPORT

Legend:
Removed from v.21  
changed lines
  Added in v.22

  ViewVC Help
Powered by ViewVC 1.1.26