module => 'members',
letter_code => $letter_code,
branchcode => $externalid->{'branchcode'},
+ lang => $externalid->{lang} || 'default',
tables => {
'branches' => $library,
'borrowers' => $externalid->{'borrowernumber'},
my $values = $values_in ? { %$values_in } : {};
if ( $table eq 'borrowers' && $values->{'dateexpiry'} ){
- $values->{'dateexpiry'} = output_pref({ str => $values->{dateexpiry}, dateonly => 1 });
+ $values->{'dateexpiry'} = output_pref({ dt => dt_from_string( $values->{'dateexpiry'} ), dateonly => 1 });
}
if ( $table eq 'reserves' && $values->{'waitingdate'} ) {
}
$message->{to_address} = $patron->smsalertnumber; #Sometime this is set to email - sms should always use smsalertnumber
$message->{to_address} .= '@' . $sms_provider->domain();
- _update_message_to_address($message->{'message_id'},$message->{to_address});
+
+ # Check for possible from_address override
+ my $from_address = C4::Context->preference('EmailSMSSendDriverFromAddress');
+ if ($from_address && $message->{from_address} ne $from_address) {
+ $message->{from_address} = $from_address;
+ _update_message_from_address($message->{'message_id'}, $message->{from_address});
+ }
+
+ _update_message_to_address($message->{'message_id'}, $message->{to_address});
_send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} );
} else {
_send_message_by_sms( $message );
}
}
- my $utf8 = decode('MIME-Header', $message->{'subject'} );
- $message->{subject}= encode('MIME-Header', $utf8);
- my $subject = encode('UTF-8', $message->{'subject'});
+ # Encode subject line separately
+ $message->{subject} = encode('MIME-Header', $message->{'subject'} );
+ my $subject = $message->{'subject'};
+
my $content = encode('UTF-8', $message->{'content'});
my $content_type = $message->{'content_type'} || 'text/plain; charset="UTF-8"';
my $is_html = $content_type =~ m/html/io;
$dbh->do('UPDATE message_queue SET to_address=? WHERE message_id=?',undef,($to,$id));
}
+sub _update_message_from_address {
+ my ($message_id, $from_address) = @_;
+ my $dbh = C4::Context->dbh();
+ $dbh->do('UPDATE message_queue SET from_address = ? WHERE message_id = ?', undef, ($from_address, $message_id));
+}
+
sub _set_message_status {
my $params = shift or return;