#!/usr/bin/perl require "db.pl"; require "utils.pl"; use Mail::Sendmail; @invitations = &ready_invitation_ids(); foreach $invitation_id (@invitations) { my %invite, @emails, @messages, @polls, %owner; &load_invitation($invitation_id, undef, \%invite, \@emails, \@messages, \@polls); &get_userinfo($invite{owner}, \%owner); my @message_ids = map {$_->{invitation_message_id}} @messages; my @email_address_ids = map {$_->{email_address_id}} @emails; foreach $email_address_id (@email_address_ids) { my @sent = &mailings_sent_to_email_address($email_address_id); my @tosend = &set_diff(\@message_ids, \@sent); next unless @tosend; my %invitee; my $invite_map_id = &get_invite_map_id($invitation_id, $email_address_id); &load_invitee($invite_map_id, \%invitee); my $rcptname = &name_from_emailid($email_address_id); my $rcptaddr = &emailaddress_from_emailid($email_address_id); my $rcpt = $rcptname ? $rcptname." <".$rcptaddr.">" : $rcptaddr; my $fromname = $owner{name}; my $fromaddr = $owner{email_address}; my $from = $fromname ? $fromname." <".$fromaddr.">" : $fromaddr; my $subject; my $message; my @message_ids_sent = (); foreach $msgid (@tosend) { %msg = &load_message($msgid); next unless ( $msg{send_to} eq 'All' || $msg{send_to} eq $invitee{response} || ( $msg{send_to} eq 'Not No Response' && $invitee{response} ne 'No Response' ) || ( $msg{send_to} eq 'Not No' && $invitee{response} ne 'No' ) || ( $msg{send_to} eq 'Undecided' && ( $invitee{response} eq 'Maybe' || $invitee{response} eq 'No Response' ) ) || ( $msg{send_to} eq 'Yes/Maybe' && ( $invitee{response} eq 'Yes' || $invitee{response} eq 'Maybe' ) ) ); $subject ||= $msg{subjectline}; $message .= "\n----------\n" if $message; $message .= $msg{message}; push @message_ids_sent, $msgid; } next unless @message_ids_sent; $subject = "Invitation: " . $subject; $message = qq| [ Click here to respond to this invitation:\n http://invitotron.epiglyph.com/invite.cgi?invitee=| . $invite_map_id . qq| ]\n\n| . $message; $message .= qq|\n\n [ Click here to respond to this invitation:\n http://invitotron.epiglyph.com/invite.cgi?invitee=| . $invite_map_id . qq| ]\n|; #print "From: ", $from, "\n"; print "To: ", $rcpt, "\n"; #print "Subject: ", $subject, "\n\n"; #print $message,"\n"; %mail = (To => $rcpt, From => $from, Subject => $subject, Message => $message); if(sendmail(%mail)) { foreach $msgid (@message_ids_sent) { &set_mailsent($invitation_id,$msgid,$email_address_id); } } } }