eadd0dba6c
It is now not erroring, not sure if its actually sending mail, working on that now
148 lines
3.9 KiB
Perl
Executable file
148 lines
3.9 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
use strict;
|
|
require Exporter;
|
|
use CGI;
|
|
use Mail::Sendmail;
|
|
use MIME::QuotedPrint;
|
|
use MIME::Base64;
|
|
use C4::Context;
|
|
use C4::Search;
|
|
use C4::Auth;
|
|
use C4::Interface::CGI::Output;
|
|
use C4::Biblio;
|
|
use HTML::Template;
|
|
|
|
my $query = new CGI;
|
|
|
|
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
|
|
{
|
|
template_name => "opac-sendbasketform.tmpl",
|
|
query => $query,
|
|
type => "opac",
|
|
authnotrequired => 1,
|
|
flagsrequired => { borrow => 1 },
|
|
}
|
|
);
|
|
|
|
my $bib_list = $query->param('bib_list');
|
|
my $email_add = $query->param('email_add');
|
|
my $email_sender = $query->param('email_sender');
|
|
|
|
my $dbh = C4::Context->dbh();
|
|
|
|
if ($email_add) {
|
|
my $email_from = C4::Context->preference('KohaAdminEmailAddress');
|
|
|
|
my %mail = (
|
|
To => $email_add,
|
|
From => $email_from
|
|
);
|
|
|
|
my ( $template2, $borrowernumber, $cookie ) = get_template_and_user(
|
|
{
|
|
template_name => "opac-sendbasket.tmpl",
|
|
query => $query,
|
|
type => "opac",
|
|
authnotrequired => 1,
|
|
flagsrequired => { borrow => 1 },
|
|
}
|
|
);
|
|
|
|
my @bibs = split ( /\//, $bib_list );
|
|
my @results;
|
|
my $iso2709;
|
|
foreach my $biblionumber (@bibs) {
|
|
$template2->param( biblionumber => $biblionumber );
|
|
|
|
my $dat = &bibdata($biblionumber);
|
|
my ( $authorcount, $addauthor ) = &addauthor($biblionumber);
|
|
my @items = &ItemInfo( undef, $biblionumber, 'opac' );
|
|
|
|
$dat->{'additional'} = $addauthor->[0]->{'author'};
|
|
for ( my $i = 1 ; $i < $authorcount ; $i++ ) {
|
|
$dat->{'additional'} .= "|" . $addauthor->[$i]->{'author'};
|
|
}
|
|
|
|
$dat->{'biblionumber'} = $biblionumber;
|
|
$dat->{ITEM_RESULTS} = \@items;
|
|
my $record = MARCgetbiblio( $dbh, $biblionumber );
|
|
$iso2709 .= $record->as_usmarc();
|
|
|
|
push ( @results, $dat );
|
|
}
|
|
|
|
my $resultsarray = \@results;
|
|
$template2->param(
|
|
BIBLIO_RESULTS => $resultsarray,
|
|
email_sender => $email_sender
|
|
);
|
|
|
|
# Getting template result
|
|
my $template_res = $template2->output();
|
|
|
|
# Analysing information and getting mail properties
|
|
if ( $template_res =~ /<SUBJECT>\n(.*)\n<END_SUBJECT>/s ) {
|
|
$mail{'subject'} = $1;
|
|
}
|
|
else { $mail{'subject'} = "no subject"; }
|
|
|
|
my $email_header = "";
|
|
if ( $template_res =~ /<HEADER>\n(.*)\n<END_HEADER>/s ) {
|
|
$email_header = $1;
|
|
}
|
|
|
|
my $email_file = "basket.txt";
|
|
if ( $template_res =~ /<FILENAME>\n(.*)\n<END_FILENAME>/s ) {
|
|
$email_file = $1;
|
|
}
|
|
|
|
if ( $template_res =~ /<MESSAGE>\n(.*)\n<END_MESSAGE>/s ) {
|
|
$mail{'body'} = $1;
|
|
}
|
|
|
|
my $boundary = "====" . time() . "====";
|
|
$mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\"";
|
|
|
|
$email_header = encode_qp($email_header);
|
|
|
|
$boundary = "--" . $boundary;
|
|
|
|
# Writing mail
|
|
$mail{body} = <<END_OF_BODY;
|
|
$boundary
|
|
Content-Type: text/plain; charset="iso-8859-1"
|
|
Content-Transfer-Encoding: quoted-printable
|
|
|
|
$email_header
|
|
|
|
$mail{'body'}
|
|
|
|
$boundary--
|
|
END_OF_BODY
|
|
|
|
# Sending mail
|
|
if ( sendmail %mail ) {
|
|
|
|
# do something if it works....
|
|
warn "Mail sent ok\n";
|
|
$template->param( SENT => "1" );
|
|
$template->param( email_add => $email_add );
|
|
}
|
|
else {
|
|
|
|
# do something if it doesnt work....
|
|
warn "Error sending mail: $Mail::Sendmail::error \n";
|
|
warn "$mail{'body'}";
|
|
}
|
|
|
|
output_html_with_http_headers $query, $cookie, $template->output;
|
|
}
|
|
else {
|
|
$template->param( bib_list => $bib_list );
|
|
$template->param(
|
|
url => "/cgi-bin/koha/opac-sendbasket.pl",
|
|
suggestion => C4::Context->preference("suggestion"),
|
|
virtualshelves => C4::Context->preference("virtualshelves"),
|
|
);
|
|
output_html_with_http_headers $query, $cookie, $template->output;
|
|
}
|