# ... then send mail
if ( $databookseller->{bookselleremail}
- || $databookseller->{contemail} )
- {
+ || $databookseller->{contemail} ) {
+ my $mail_to = $databookseller->{bookselleremail};
+ if ($databookseller->{contemail}) {
+ if (!$mail_to) {
+ $mail_to = $databookseller->{contemail};
+ } else {
+ $mail_to .= q|,|;
+ $mail_to .= $databookseller->{contemail};
+ }
+ }
+ my $mail_subj = $innerletter->{title};
+ my $mail_msg = $innerletter->{content};
+ $mail_msg ||= q{};
+ $mail_subj ||= q{};
+
my %mail = (
- To => $databookseller->{bookselleremail}
- . (
- $databookseller->{contemail}
- ? "," . $databookseller->{contemail}
- : ""
- ),
+ To => $mail_to,
From => $userenv->{emailaddress},
- Subject => "" . $innerletter->{title},
- Message => "" . $innerletter->{content},
+ Subject => $mail_subj,
+ Message => $mail_msg,
'Content-Type' => 'text/plain; charset="utf8"',
);
sendmail(%mail);
if ( lc( $message->{'message_transport_type'} ) eq 'email' ) {
_send_message_by_email( $message );
}
- if ( lc( $message->{'message_transport_type'} ) eq 'sms' ) {
+ elsif ( lc( $message->{'message_transport_type'} ) eq 'sms' ) {
_send_message_by_sms( $message );
}
}
}
sub _send_message_by_email ($) {
- my $message = shift or return undef;
-
- my $member = C4::Members::GetMember( $message->{'borrowernumber'} );
- return unless $message->{'to_address'} or $member->{'email'};
+ my $message = shift or return;
+
+ my $to_address = $message->{to_address};
+ unless ($to_address) {
+ my $member = C4::Members::GetMember( $message->{'borrowernumber'} );
+ unless ($member) {
+ warn "FAIL: No 'to_address' and INVALID borrowernumber ($message->{borrowernumber})";
+ _set_message_status( { message_id => $message->{'message_id'},
+ status => 'failed' } );
+ return;
+ }
+ unless ($to_address = $member->{email}) { # assigment, not comparison
+ # warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})";
+ # warning too verbose for this more common case?
+ _set_message_status( { message_id => $message->{'message_id'},
+ status => 'failed' } );
+ return;
+ }
+ }
my $content = encode('utf8', $message->{'content'});
my %sendmail_params = (
- To => $message->{'to_address'} || $member->{'email'},
+ To => $to_address,
From => $message->{'from_address'} || C4::Context->preference('KohaAdminEmailAddress'),
Subject => $message->{'subject'},
- charset => 'utf8',
+ charset => 'utf8',
Message => $content,
+ 'content-type' => $message->{'content_type'} || 'text/plain; charset="UTF-8"',
);
- if ($message->{'content_type'}) {
- $sendmail_params{'content-type'} = $message->{'content_type'};
- }else{
- $sendmail_params{'content-type'} = 'text/plain; charset="UTF-8"';
- }
my $success = sendmail( %sendmail_params );