Lines 1059-1065
sub GetQueuedMessages {
Link Here
|
1059 |
|
1059 |
|
1060 |
my $dbh = C4::Context->dbh(); |
1060 |
my $dbh = C4::Context->dbh(); |
1061 |
my $statement = << 'ENDSQL'; |
1061 |
my $statement = << 'ENDSQL'; |
1062 |
SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued |
1062 |
SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued, sentto_address |
1063 |
FROM message_queue |
1063 |
FROM message_queue |
1064 |
ENDSQL |
1064 |
ENDSQL |
1065 |
|
1065 |
|
Lines 1188-1204
sub _send_message_by_email {
Link Here
|
1188 |
|
1188 |
|
1189 |
my $member = C4::Members::GetMember( 'borrowernumber' => $message->{'borrowernumber'} ); |
1189 |
my $member = C4::Members::GetMember( 'borrowernumber' => $message->{'borrowernumber'} ); |
1190 |
my $to_address = $message->{'to_address'}; |
1190 |
my $to_address = $message->{'to_address'}; |
|
|
1191 |
if (!$to_address && $member) { |
1192 |
$to_address = C4::Members::GetNoticeEmailAddress( $message->{'borrowernumber'} ); |
1193 |
} |
1191 |
my $sendAllEmailsTo = C4::Context->preference('SendAllEmailsTo'); |
1194 |
my $sendAllEmailsTo = C4::Context->preference('SendAllEmailsTo'); |
1192 |
$to_address = $sendAllEmailsTo if ($sendAllEmailsTo && $sendAllEmailsTo =~ /@/ ); # some validation. This could be improved. |
1195 |
$to_address = $sendAllEmailsTo if ($sendAllEmailsTo && $sendAllEmailsTo =~ /@/ ); # some validation. This could be improved. |
1193 |
unless ($to_address) { |
1196 |
unless ($to_address) { |
1194 |
unless ($member) { |
1197 |
if (!$member) { |
1195 |
warn "FAIL: No 'to_address' and INVALID borrowernumber ($message->{borrowernumber})"; |
1198 |
warn "FAIL: No 'to_address' and INVALID borrowernumber ($message->{borrowernumber})"; |
1196 |
_set_message_status( { message_id => $message->{'message_id'}, |
1199 |
_set_message_status( { message_id => $message->{'message_id'}, |
1197 |
status => 'failed' } ); |
1200 |
status => 'failed' } ); |
1198 |
return; |
1201 |
return; |
1199 |
} |
1202 |
} |
1200 |
$to_address = C4::Members::GetNoticeEmailAddress( $message->{'borrowernumber'} ); |
1203 |
else { |
1201 |
unless ($to_address) { |
|
|
1202 |
# warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})"; |
1204 |
# warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})"; |
1203 |
# warning too verbose for this more common case? |
1205 |
# warning too verbose for this more common case? |
1204 |
_set_message_status( { message_id => $message->{'message_id'}, |
1206 |
_set_message_status( { message_id => $message->{'message_id'}, |
Lines 1242-1249
sub _send_message_by_email {
Link Here
|
1242 |
|
1244 |
|
1243 |
_update_message_to_address($message->{'message_id'},$to_address) unless $message->{to_address}; #if initial message address was empty, coming here means that a to address was found and queue should be updated |
1245 |
_update_message_to_address($message->{'message_id'},$to_address) unless $message->{to_address}; #if initial message address was empty, coming here means that a to address was found and queue should be updated |
1244 |
if ( sendmail( %sendmail_params ) ) { |
1246 |
if ( sendmail( %sendmail_params ) ) { |
1245 |
_set_message_status( { message_id => $message->{'message_id'}, |
1247 |
_set_message_status( { message_id => $message->{'message_id'}, |
1246 |
status => 'sent' } ); |
1248 |
status => 'sent', |
|
|
1249 |
sentto_address => $to_address } ); |
1247 |
return 1; |
1250 |
return 1; |
1248 |
} else { |
1251 |
} else { |
1249 |
_set_message_status( { message_id => $message->{'message_id'}, |
1252 |
_set_message_status( { message_id => $message->{'message_id'}, |
Lines 1327-1337
sub _set_message_status {
Link Here
|
1327 |
return unless exists $params->{ $required_parameter }; |
1330 |
return unless exists $params->{ $required_parameter }; |
1328 |
} |
1331 |
} |
1329 |
|
1332 |
|
1330 |
my $dbh = C4::Context->dbh(); |
|
|
1331 |
my $statement = 'UPDATE message_queue SET status= ? WHERE message_id = ?'; |
1333 |
my $statement = 'UPDATE message_queue SET status= ? WHERE message_id = ?'; |
|
|
1334 |
my @values; |
1335 |
push @values,$params->{'status'}; |
1336 |
if (exists($params->{'sentto_address'})) { |
1337 |
$statement = 'UPDATE message_queue SET status=?, sentto_address=? WHERE message_id = ?'; |
1338 |
push @values,$params->{'sentto_address'}; |
1339 |
} |
1340 |
push @values,$params->{'message_id'}; |
1341 |
my $dbh = C4::Context->dbh(); |
1332 |
my $sth = $dbh->prepare( $statement ); |
1342 |
my $sth = $dbh->prepare( $statement ); |
1333 |
my $result = $sth->execute( $params->{'status'}, |
1343 |
my $result = $sth->execute( @values ); |
1334 |
$params->{'message_id'} ); |
|
|
1335 |
return $result; |
1344 |
return $result; |
1336 |
} |
1345 |
} |
1337 |
|
1346 |
|