|
Lines 279-298
sub SendAlerts {
Link Here
|
| 279 |
my $innerletter = $letter; |
279 |
my $innerletter = $letter; |
| 280 |
my $borinfo = C4::Members::GetMember('borrowernumber' => $_->{'borrowernumber'}); |
280 |
my $borinfo = C4::Members::GetMember('borrowernumber' => $_->{'borrowernumber'}); |
| 281 |
parseletter( $innerletter, 'borrowers', $_->{'borrowernumber'} ); |
281 |
parseletter( $innerletter, 'borrowers', $_->{'borrowernumber'} ); |
|
|
282 |
$innerletter->{'content-type'} = 'text/plain; charset="utf8"'; |
| 282 |
|
283 |
|
| 283 |
# ... then send mail |
284 |
# ... then send mail |
| 284 |
if ( $borinfo->{email} ) { |
285 |
my %mail = ( |
| 285 |
my %mail = ( |
286 |
borrowernumber => $borinfo->{borrowernumber}, |
| 286 |
To => $borinfo->{email}, |
287 |
message_transport_type => 'email', |
| 287 |
From => $borinfo->{email}, |
288 |
letter => $innerletter, |
| 288 |
Subject => "" . $innerletter->{title}, |
289 |
no_local_bcc => 1, |
| 289 |
Message => "" . $innerletter->{content}, |
290 |
); |
| 290 |
'Content-Type' => 'text/plain; charset="utf8"', |
291 |
EnqueueLetter( \%mail ); |
| 291 |
); |
|
|
| 292 |
sendmail(%mail) or carp $Mail::Sendmail::error; |
| 293 |
|
292 |
|
| 294 |
# warn "sending to $mail{To} From $mail{From} subj $mail{Subject} Mess $mail{Message}"; |
293 |
# warn "sending to $mail{To} From $mail{From} subj $mail{Subject} Mess $mail{Message}"; |
| 295 |
} |
|
|
| 296 |
} |
294 |
} |
| 297 |
} |
295 |
} |
| 298 |
elsif ( $type eq 'claimacquisition' ) { |
296 |
elsif ( $type eq 'claimacquisition' ) { |
|
Lines 335-358
sub SendAlerts {
Link Here
|
| 335 |
} |
333 |
} |
| 336 |
$letter->{content} =~ s/<<[^>]*>>//g; |
334 |
$letter->{content} =~ s/<<[^>]*>>//g; |
| 337 |
my $innerletter = $letter; |
335 |
my $innerletter = $letter; |
| 338 |
|
336 |
$innerletter->{'content-type'} = 'text/plain; charset="utf8"'; |
| 339 |
# ... then send mail |
337 |
# ... then send mail |
| 340 |
if ( $databookseller->{bookselleremail} |
338 |
if ( $databookseller->{bookselleremail} |
| 341 |
|| $databookseller->{contemail} ) |
339 |
|| $databookseller->{contemail} ) |
| 342 |
{ |
340 |
{ |
| 343 |
my %mail = ( |
341 |
my %mail = ( |
| 344 |
To => $databookseller->{bookselleremail} |
342 |
to_address => $databookseller->{bookselleremail} |
| 345 |
. ( |
343 |
. ( |
| 346 |
$databookseller->{contemail} |
344 |
$databookseller->{contemail} |
| 347 |
? "," . $databookseller->{contemail} |
345 |
? "," . $databookseller->{contemail} |
| 348 |
: "" |
346 |
: "" |
| 349 |
), |
347 |
), |
| 350 |
From => $userenv->{emailaddress}, |
348 |
from_address => $userenv->{emailaddress}, |
| 351 |
Subject => "" . $innerletter->{title}, |
349 |
message_transport_type => 'email', |
| 352 |
Message => "" . $innerletter->{content}, |
350 |
letter => $innerletter, |
| 353 |
'Content-Type' => 'text/plain; charset="utf8"', |
351 |
no_local_bcc => 1, |
| 354 |
); |
352 |
); |
| 355 |
sendmail(%mail) or carp $Mail::Sendmail::error; |
353 |
EnqueueLetter( \%mail ); |
| 356 |
} |
354 |
} |
| 357 |
if ( C4::Context->preference("LetterLog") ) { |
355 |
if ( C4::Context->preference("LetterLog") ) { |
| 358 |
logaction( |
356 |
logaction( |
|
Lines 422-436
sub SendAlerts {
Link Here
|
| 422 |
my $mail_msg = $innerletter->{content}; |
420 |
my $mail_msg = $innerletter->{content}; |
| 423 |
$mail_msg ||= q{}; |
421 |
$mail_msg ||= q{}; |
| 424 |
$mail_subj ||= q{}; |
422 |
$mail_subj ||= q{}; |
| 425 |
|
423 |
my $letter = { |
|
|
424 |
title => $mail_subj, |
| 425 |
content => $mail_msg, |
| 426 |
'content-type' => 'text/plain; charset="utf8"', |
| 427 |
}; |
| 426 |
my %mail = ( |
428 |
my %mail = ( |
| 427 |
To => $mail_to, |
429 |
to_address => $mail_to, |
| 428 |
From => $userenv->{emailaddress}, |
430 |
from_address => $userenv->{emailaddress}, |
| 429 |
Subject => $mail_subj, |
431 |
message_transport_type => 'email', |
| 430 |
Message => $mail_msg, |
432 |
letter => $letter, |
| 431 |
'Content-Type' => 'text/plain; charset="utf8"', |
433 |
no_local_bcc => 1, |
| 432 |
); |
434 |
); |
| 433 |
sendmail(%mail) or carp $Mail::Sendmail::error; |
435 |
EnqueueLetter( \%mail ); |
| 434 |
logaction( |
436 |
logaction( |
| 435 |
"ACQUISITION", |
437 |
"ACQUISITION", |
| 436 |
"CLAIM ISSUE", |
438 |
"CLAIM ISSUE", |
|
Lines 443-449
sub SendAlerts {
Link Here
|
| 443 |
. $innerletter->{content} |
445 |
. $innerletter->{content} |
| 444 |
) if C4::Context->preference("LetterLog"); |
446 |
) if C4::Context->preference("LetterLog"); |
| 445 |
} |
447 |
} |
| 446 |
} |
448 |
} |
| 447 |
# send an "account details" notice to a newly created user |
449 |
# send an "account details" notice to a newly created user |
| 448 |
elsif ( $type eq 'members' ) { |
450 |
elsif ( $type eq 'members' ) { |
| 449 |
# must parse the password special, before it's hashed. |
451 |
# must parse the password special, before it's hashed. |
|
Lines 453-466
sub SendAlerts {
Link Here
|
| 453 |
parseletter( $letter, 'branches', $externalid->{'branchcode'} ); |
455 |
parseletter( $letter, 'branches', $externalid->{'branchcode'} ); |
| 454 |
|
456 |
|
| 455 |
my $branchdetails = GetBranchDetail($externalid->{'branchcode'}); |
457 |
my $branchdetails = GetBranchDetail($externalid->{'branchcode'}); |
|
|
458 |
$letter->{'content-type'} = 'text/plain; charset="utf8"'; |
| 459 |
|
| 456 |
my %mail = ( |
460 |
my %mail = ( |
| 457 |
To => $externalid->{'emailaddr'}, |
461 |
to_address => $externalid->{'emailaddr'}, |
| 458 |
From => $branchdetails->{'branchemail'} || C4::Context->preference("KohaAdminEmailAddress"), |
462 |
message_transport_type => 'email', |
| 459 |
Subject => $letter->{'title'}, |
463 |
letter => $letter, |
| 460 |
Message => $letter->{'content'}, |
464 |
no_local_bcc => 1, |
| 461 |
'Content-Type' => 'text/plain; charset="utf8"', |
|
|
| 462 |
); |
465 |
); |
| 463 |
sendmail(%mail) or carp $Mail::Sendmail::error; |
466 |
EnqueueLetter( \%mail ); |
| 464 |
} |
467 |
} |
| 465 |
} |
468 |
} |
| 466 |
|
469 |
|
|
Lines 633-645
sub EnqueueLetter ($) {
Link Here
|
| 633 |
# If we have any attachments we should encode then into the body. |
636 |
# If we have any attachments we should encode then into the body. |
| 634 |
if ( $params->{'attachments'} ) { |
637 |
if ( $params->{'attachments'} ) { |
| 635 |
$params->{'letter'} = _add_attachments( |
638 |
$params->{'letter'} = _add_attachments( |
| 636 |
{ letter => $params->{'letter'}, |
639 |
{ |
|
|
640 |
letter => $params->{'letter'}, |
| 637 |
attachments => $params->{'attachments'}, |
641 |
attachments => $params->{'attachments'}, |
| 638 |
message => MIME::Lite->new( Type => 'multipart/mixed' ), |
642 |
message => MIME::Lite->new( Type => 'multipart/mixed' ), |
| 639 |
} |
643 |
} |
| 640 |
); |
644 |
); |
| 641 |
} |
645 |
} |
| 642 |
|
646 |
|
|
|
647 |
# If we aren't given a from address, we first go for the user's |
| 648 |
# branch (which may be the librarians, but that's OK) email, if that doesn't |
| 649 |
# work, we go for the koha admin address. |
| 650 |
if ( !$params->{'from_address'} ) { |
| 651 |
my $userenv = C4::Context->userenv; |
| 652 |
my $branch = $userenv->{branch}; |
| 653 |
my $branch_detail = GetBranchDetail($branch); |
| 654 |
my $branch_email = $branch_detail->{branchemail}; |
| 655 |
$params->{from_address} = $branch_email |
| 656 |
|| C4::Context->preference('KohaAdminEmailAddress'); |
| 657 |
} |
| 658 |
|
| 659 |
# Set a reply-to if there isn't one already. |
| 660 |
$params->{'reply_to_address'} = $params->{from_address} |
| 661 |
if !$params->{reply_to_address}; |
| 662 |
|
| 643 |
my $dbh = C4::Context->dbh(); |
663 |
my $dbh = C4::Context->dbh(); |
| 644 |
my $statement = << 'ENDSQL'; |
664 |
my $statement = << 'ENDSQL'; |
| 645 |
INSERT INTO message_queue |
665 |
INSERT INTO message_queue |
|
Lines 652-660
ENDSQL
Link Here
|
| 652 |
|
672 |
|
| 653 |
my $sth = $dbh->prepare($statement); |
673 |
my $sth = $dbh->prepare($statement); |
| 654 |
my $result = $sth->execute( |
674 |
my $result = $sth->execute( |
| 655 |
$params->{'borrowernumber'}, # borrowernumber |
675 |
$params->{'borrowernumber'}, # borrowernumber |
| 656 |
$params->{'letter'}->{'title'}, # subject |
676 |
$params->{'letter'}->{'title'}, # subject |
| 657 |
$params->{'letter'}->{'content'}, # content |
677 |
$params->{'letter'}->{'content'}, # content |
| 658 |
$params->{'letter'}->{'metadata'} || '', # metadata |
678 |
$params->{'letter'}->{'metadata'} || '', # metadata |
| 659 |
$params->{'letter'}->{'code'} || '', # letter_code |
679 |
$params->{'letter'}->{'code'} || '', # letter_code |
| 660 |
$params->{'letter'}->{'content-type'}, # content_type |
680 |
$params->{'letter'}->{'content-type'}, # content_type |
| 661 |
- |
|
|