[Koha] Birthday Wishes email to patron any option from koha?
pandian at imsc.res.in
pandian at imsc.res.in
Fri Nov 6 16:21:08 NZDT 2020
Dear Alvaro,
Thanks very much. I will check and get back should i need any
clarifications and help.
Regards,
Pandian
Quoting Alvaro Cornejo <cornejo.alvaro at gmail.com>:
> Hi
>
> Here is the report to setup as *public*:
>
> SELECT
> borrowers.surname, borrowers.firstname, borrowers.email,
> borrowers.emailpro, borrowers.sex, borrowers.lang
> FROM borrowers
> WHERE DATE_FORMAT(borrowers.dateofbirth, '%m-%d') = DATE_FORMAT(CURDATE(),
> '%m-%d')
> LIMIT 50
>
> You can add other fields to the report so you can do additional
> verifications/vaidations like the patron is active, has had activity in
> the last x months/years, etc. Be careful with the order of the fields since
> this will have an impact on the script. We set LIMIT to 50 just to avoid
> the public report "hard record limit" of 10 records per query. You can set
> it to anything you think is reasonable.
>
> The script is what is between ============ lines:
>
> The script uses sendmail to send plain text emails. You can modify it to
> use any of the perl email libraries and use html format instead.
>
> koha_birthdays.pl
> =================
> #!/usr/bin/perl
> # Library includes
> use strict;
> use warnings;
> use LWP::UserAgent;
> use HTTP::Request;
> use JSON;
>
> print "\nEjecutando koha_birthday\n";
>
> #My Global Variables
> my $hello = "";
> my $subject = "";
> my $body = "";
> my $message = "";
> my $to = "";
> my $from = "";
> my $result = "";
> my $i = 0;
>
> # Capture report data:
> # Fields from report: surname firstname email emailpro sex lang
> # Prepare connection, call url and insert data (json format) to arrary
> my $ua = new LWP::UserAgent;
> $ua->agent("Perl API Client/1.0");
> my $url = "https://YOURSITE/cgi-bin/koha/svc/report?id=XX"; # REPLACE
> YOUR SITE WITH YOUR OPAC BASE URL and XX WITH THE NUMBER OF THE REPORT YOU
> CREATE ABOVE
> my $request = HTTP::Request->new("GET" => $url);
> my $response = $ua->request($request);
> my $json_obj = JSON->new->utf8->decode($response->content);
> my $row_num = scalar(@{$json_obj});
>
> #Scroll/split each registry and send the email
> foreach my $row (@{$json_obj}) {
> if ($i < $row_num) {
> my $surname = @{$row}[0];
> my $firstname = @{$row}[1];
> my $email = @{$row}[2];
> my $emailpro = @{$row}[3];
> my $sex = @{$row}[4];
> my $lang = @{$row}[5];
>
> # Get destination address (private email else professional)
> if ($email) {
> my $to = $email;
> } elsif ($emailpro) {
> my $to = $emailpro;
> } else {
> next;
> }
>
> # Assemble the patron salutation string for each language. Our
> default is es-ES
> if ($lang eq "default" || $lang eq "es-ES") {
> if ($sex eq "M") {
> $hello = "Estimado Sr. $surname,\n"
> } elsif ($sex eq "F") {
> $hello = "Estimada Sra. $surname,\n"
> } else {
> $hello = "Estimado(a) $firstname $surname,\n"
> }
> } elsif ($lang eq "en") {
> if ($sex eq "M") {
> $hello = "Dear Mr. $surname,\n"
> } elsif ($sex eq "F") {
> $hello = "Dear Mrs. $surname,\n"
> } else {
> $hello = "Dear $firstname $surname,\n"
> }
> }
>
> # Define email subject & body
> if ($lang eq "default" || $lang eq "es-ES") {
> $subject = "Feliz cumpleaños le desea el CELACP!";
> $body = "\n";
> $body .= "El CELACP se complace en hacerle llegar sus mejores
> deseos en esta fecha tan importante para Ud.\n\n";
> $body .= "Sinceramente esperamos tenga un muy feliz día y
> esperamos contar con su presencia en nuestro local\n";
> $body .= "o a través de nuestra plataforma virtual en
> https://biblioteca.celacp.org\n\n";
> $body .= "Atentamente,\n\n";
> $body .= "Centro de Estudios Latinoaméricanos Antonio Cornejo
> Polar - CELACP -\n";
> } elsif ($lang eq "en") {
> $subject = "Happy birthday from the CELACP!";
> $body = "\n";
> $body .= "The CELACP is pleased to send you its best wishes on
> this important date for you.\n\n";
> $body .= "We sincerely hope you have a very happy day and we
> look forward to seeing you at our library\n";
> $body .= "or through our virtual platform at
> https://biblioteca.celacp.org\n\n";
> $body .= "Sincerely,\n\n";
> $body .= "Center for Latinamerican Estudies Antonio Cornejo
> Polar - CELACP -\n";
> }
>
> # Final message assembly
> #$to = 'dummy at gmail.com'; #Dummy address for testing purposes. If
> uncommented, overrides the destination address and all emails will be sent
> to this address.
> $from = 'source_emaiil at mydomain.com';
> $message = $hello;
> $message .= $body;
>
> # Create mail "session"
> open(MAIL, "|/usr/sbin/sendmail -t");
>
> # Email Header
> print MAIL "To: $to\n";
> print MAIL "From: $from\n";
> print MAIL "Subject: $subject\n\n";
>
> # Email Body
> print MAIL $message;
>
> # Send email & confirm
> $result = close(MAIL);
> if($result) { print "Se envió mensaje a $to\n";} else { print
> "Falló el envío del mensaje a $to!\n";}
>
> $i++;
> } # END IF
> } # END FOREACH
>
> print "Se enviaron $i mensajes de cumpleaños\n";
> 1;
> =========================
>
> To run from the command line:
>
> # perl /PATHTOSCRIPT/koha_birthdays.pl
>
> To run on a cron job
>
> add
>
> /usr/bin/perl /PATHTOSCRIPT/koha_birthdays.pl to, for
> example /etc/cron.daily/koha-common or if you are to use crontab you can
> add:
>
> 0 7 * * * USER /usr/bin/perl /PATHTOSCRIPT/koha_birthdays.pl
>
> This will run the script every day at 7:00 am and will use user USER
> privileges to run it.
>
> Hope this helps.
>
> Regards
>
> Alvaro
>
> |----------------------------------------------------------------------------------------|
> Stay safe / Cuídate/ Reste sécurisé
> *7* Switch off as you go / Apaga lo que no usas / Débranchez au fur et à
> mesure.
> *q *Recycle always / Recicla siempre / Recyclez toujours
> P Print only if absolutely necessary / Imprime solo si es necesario /
> Imprimez seulement si nécessaire
>
>
> Le jeu. 5 nov. 2020 à 18:42, <pandian at imsc.res.in> a écrit :
>
>> Dear Alvaro,
>>
>> Thanks, yes can you please share the script codes so that we can use it.
>>
>> Regards
>>
>> Pandian
>>
>> Quoting Alvaro Cornejo <cornejo.alvaro at gmail.com>:
>>
>> > Hi
>> >
>> > We have created a public report in koha that provides us the info we need
>> > to send the emails and created a script that parses the output of that
>> > report and sends the email. We finally run this script with a cronjob.
>> >
>> > I can share the report and script if you think it will help you.
>> >
>> > Regards
>> >
>> > Alvaro
>> >
>> |----------------------------------------------------------------------------------------|
>> > Stay safe / Cuídate/ Reste sécurisé
>> > *7* Switch off as you go / Apaga lo que no usas / Débranchez au fur et à
>> > mesure.
>> > *q *Recycle always / Recicla siempre / Recyclez toujours
>> > P Print only if absolutely necessary / Imprime solo si es necesario /
>> > Imprimez seulement si nécessaire
>> >
>> >
>> > Le mer. 4 nov. 2020 à 12:56, Owen Leonard <oleonard at myacpl.org> a écrit
>> :
>> >
>> >> > So how can we make this possible to send birthday wishes from Koha?
>> >>
>> >> Currently it is not possible. There is an open bug for this, but so
>> >> far no one has taken it on:
>> >>
>> >> https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22086
>> >>
>> >> Owen
>> >>
>> >> --
>> >> Web Developer
>> >> Athens County Public Libraries
>> >> (740) 737-6006
>> >> https://www.myacpl.org
>> >> _______________________________________________
>> >>
>> >> Koha mailing list http://koha-community.org
>> >> Koha at lists.katipo.co.nz
>> >> Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha
>> >>
>> > _______________________________________________
>> >
>> > Koha mailing list http://koha-community.org
>> > Koha at lists.katipo.co.nz
>> > Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha
>>
>>
>>
More information about the Koha
mailing list