Configuring smtp mail server to work with Koha

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Configuring smtp mail server to work with Koha

Javed Sahil
Hi Pedro,

  I am facing a problem with koha notifications similar to that you had
been facing in the past, your message details at the end of this email.

When I use following commands.

1.    koha-shell library
2.    export PERL5LIB="/usr/share/koha/lib"
3.    export KOHA_CONF="/etc/koha/sites/library/koha-conf.xml"
4.    cd /usr/share/koha/bin/cronjobs

above all go fine, but when i use following command:

5.    ./process_message_queue.pl

this error message appears:

connect to localhost failed (Connection refused)
connect to localhost failed
connect to localhost failed (Connection refused) no (more) retries!
 at ./process_message_queue.pl line 66.


Then in patron accounts, email status changes to "failed".

Help Plz.

Below is your problem detail.

Hello,

I have solved the problem:
Sendmail.pm needs to have smtp => 'localhost' and port => 25 and the e-mail
notifications are now working.

Thank you,

Pedro Amorim

2015-10-30 14:23 GMT-01:00 Pedro Amorim <pjamorim91 at gmail.com>:

> Hello Galen,
>
> Thank you for your reply.
> I have changed the Sendmail.pm file to point to smtp.gmail.com instead of
> localhost and am now receiving these errors:
>
> # koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/
> process_message_queue.pl -v
> koha: sending email message to patron: Admin at
> /usr/share/koha/lib/C4/Letters.pm line 937.
> koha: MAIL FROM: error (530 5.7.0 Must issue a STARTTLS command first.
> uj4sm7521289wjc.34 - gsmtp
> koha: )
> koha: Server said: 530 5.7.0 Must issue a STARTTLS command first.
> uj4sm7521289wjc.34 - gsmtp
> koha:  at /usr/share/koha/bin/cronjobs/process_message_queue.pl line 66
>
> I do not know much about configuring mail servers, should I keep the
> Sendmail.pm file pointing to localhost and postfix takes care of the
> redirecting?
>
> Thanks again,
>
> Pedro Amorim

--
Regards,

Javed Shoukat

Management Trainee Officer (MTO)
Lahore University of
Management Sciences (LUMS),
Lahore.

Contact #: +92 300 6548748 <+92%20300%206548748>
Email: [hidden email]
_______________________________________________
Koha mailing list  http://koha-community.org
[hidden email]
https://lists.katipo.co.nz/mailman/listinfo/koha
Reply | Threaded
Open this post in threaded view
|

Re: Configuring smtp mail server to work with Koha

Paul Hoffman
Javed,

Here's what I would do.  Note that the two export commands (setting the
environment variables PERL5LIB and KOHA_CONF) are unnecessary --
koha-shell sets them for you.

$ koha-shell library
$ cd /usr/share/koha/bin/cronjobs
$ perl -d process_message_queue.pl

This puts you in the Perl debugger -- you should see a bunch of text
ending with a prompt something like this:

  DB<1>

At the prompt, enter the command "c C4::Letters::SendQueuedMessages" --
that tells the debugger to run the script, stopping when it gets to the
C4::Letters::SendQueuedMessages() function.  Then enter the command "c
sendmail" to continue up until the sendmail() function.  Then enter the
command "t" to turn tracing on.  Then enter the command "r" to continue
until the sendmail() function returns.

With any luck, somewhere in the voluminous text that flashes by will be
a clue that helps us solve your problem.  Copy all of the text into a
message to this list.

Paul.

On Wed, Dec 06, 2017 at 04:26:21PM +0500, Javed Sahil wrote:

> Hi Pedro,
>
>   I am facing a problem with koha notifications similar to that you had
> been facing in the past, your message details at the end of this email.
>
> When I use following commands.
>
> 1.    koha-shell library
> 2.    export PERL5LIB="/usr/share/koha/lib"
> 3.    export KOHA_CONF="/etc/koha/sites/library/koha-conf.xml"
> 4.    cd /usr/share/koha/bin/cronjobs
>
> above all go fine, but when i use following command:
>
> 5.    ./process_message_queue.pl
>
> this error message appears:
>
> connect to localhost failed (Connection refused)
> connect to localhost failed
> connect to localhost failed (Connection refused) no (more) retries!
>  at ./process_message_queue.pl line 66.
>
>
> Then in patron accounts, email status changes to "failed".
>
> Help Plz.
>
> Below is your problem detail.
>
> Hello,
>
> I have solved the problem:
> Sendmail.pm needs to have smtp => 'localhost' and port => 25 and the e-mail
> notifications are now working.
>
> Thank you,
>
> Pedro Amorim
>
> 2015-10-30 14:23 GMT-01:00 Pedro Amorim <pjamorim91 at gmail.com>:
>
> > Hello Galen,
> >
> > Thank you for your reply.
> > I have changed the Sendmail.pm file to point to smtp.gmail.com instead of
> > localhost and am now receiving these errors:
> >
> > # koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/
> > process_message_queue.pl -v
> > koha: sending email message to patron: Admin at
> > /usr/share/koha/lib/C4/Letters.pm line 937.
> > koha: MAIL FROM: error (530 5.7.0 Must issue a STARTTLS command first.
> > uj4sm7521289wjc.34 - gsmtp
> > koha: )
> > koha: Server said: 530 5.7.0 Must issue a STARTTLS command first.
> > uj4sm7521289wjc.34 - gsmtp
> > koha:  at /usr/share/koha/bin/cronjobs/process_message_queue.pl line 66
> >
> > I do not know much about configuring mail servers, should I keep the
> > Sendmail.pm file pointing to localhost and postfix takes care of the
> > redirecting?
> >
> > Thanks again,
> >
> > Pedro Amorim
>
> --
> Regards,
>
> Javed Shoukat
>
> Management Trainee Officer (MTO)
> Lahore University of
> Management Sciences (LUMS),
> Lahore.
>
> Contact #: +92 300 6548748 <+92%20300%206548748>
> Email: [hidden email]
> _______________________________________________
> Koha mailing list  http://koha-community.org
> [hidden email]
> https://lists.katipo.co.nz/mailman/listinfo/koha

--
Paul Hoffman <[hidden email]>
Software Manager
Fenway Library Organization
550 Huntington Ave.
Boston, MA 02115
(617) 442-2384 (FLO main number)
_______________________________________________
Koha mailing list  http://koha-community.org
[hidden email]
https://lists.katipo.co.nz/mailman/listinfo/koha
Reply | Threaded
Open this post in threaded view
|

Re: Configuring smtp mail server to work with Koha

Paul Hoffman
Better yet, do this in the Perl debugger:

c C4::Letters::SendQueuedMessages
c sendmail
$mailcfg{'debug'} = 1
c

That should produce much less verbose debugging output.

Paul.

On Wed, Dec 06, 2017 at 09:39:09AM -0500, Paul Hoffman wrote:

> Javed,
>
> Here's what I would do.  Note that the two export commands (setting the
> environment variables PERL5LIB and KOHA_CONF) are unnecessary --
> koha-shell sets them for you.
>
> $ koha-shell library
> $ cd /usr/share/koha/bin/cronjobs
> $ perl -d process_message_queue.pl
>
> This puts you in the Perl debugger -- you should see a bunch of text
> ending with a prompt something like this:
>
>   DB<1>
>
> At the prompt, enter the command "c C4::Letters::SendQueuedMessages" --
> that tells the debugger to run the script, stopping when it gets to the
> C4::Letters::SendQueuedMessages() function.  Then enter the command "c
> sendmail" to continue up until the sendmail() function.  Then enter the
> command "t" to turn tracing on.  Then enter the command "r" to continue
> until the sendmail() function returns.
>
> With any luck, somewhere in the voluminous text that flashes by will be
> a clue that helps us solve your problem.  Copy all of the text into a
> message to this list.
>
> Paul.
>
> On Wed, Dec 06, 2017 at 04:26:21PM +0500, Javed Sahil wrote:
> > Hi Pedro,
> >
> >   I am facing a problem with koha notifications similar to that you had
> > been facing in the past, your message details at the end of this email.
> >
> > When I use following commands.
> >
> > 1.    koha-shell library
> > 2.    export PERL5LIB="/usr/share/koha/lib"
> > 3.    export KOHA_CONF="/etc/koha/sites/library/koha-conf.xml"
> > 4.    cd /usr/share/koha/bin/cronjobs
> >
> > above all go fine, but when i use following command:
> >
> > 5.    ./process_message_queue.pl
> >
> > this error message appears:
> >
> > connect to localhost failed (Connection refused)
> > connect to localhost failed
> > connect to localhost failed (Connection refused) no (more) retries!
> >  at ./process_message_queue.pl line 66.
> >
> >
> > Then in patron accounts, email status changes to "failed".
> >
> > Help Plz.
> >
> > Below is your problem detail.
> >
> > Hello,
> >
> > I have solved the problem:
> > Sendmail.pm needs to have smtp => 'localhost' and port => 25 and the e-mail
> > notifications are now working.
> >
> > Thank you,
> >
> > Pedro Amorim
> >
> > 2015-10-30 14:23 GMT-01:00 Pedro Amorim <pjamorim91 at gmail.com>:
> >
> > > Hello Galen,
> > >
> > > Thank you for your reply.
> > > I have changed the Sendmail.pm file to point to smtp.gmail.com instead of
> > > localhost and am now receiving these errors:
> > >
> > > # koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/
> > > process_message_queue.pl -v
> > > koha: sending email message to patron: Admin at
> > > /usr/share/koha/lib/C4/Letters.pm line 937.
> > > koha: MAIL FROM: error (530 5.7.0 Must issue a STARTTLS command first.
> > > uj4sm7521289wjc.34 - gsmtp
> > > koha: )
> > > koha: Server said: 530 5.7.0 Must issue a STARTTLS command first.
> > > uj4sm7521289wjc.34 - gsmtp
> > > koha:  at /usr/share/koha/bin/cronjobs/process_message_queue.pl line 66
> > >
> > > I do not know much about configuring mail servers, should I keep the
> > > Sendmail.pm file pointing to localhost and postfix takes care of the
> > > redirecting?
> > >
> > > Thanks again,
> > >
> > > Pedro Amorim
> >
> > --
> > Regards,
> >
> > Javed Shoukat
> >
> > Management Trainee Officer (MTO)
> > Lahore University of
> > Management Sciences (LUMS),
> > Lahore.
> >
> > Contact #: +92 300 6548748 <+92%20300%206548748>
> > Email: [hidden email]
> > _______________________________________________
> > Koha mailing list  http://koha-community.org
> > [hidden email]
> > https://lists.katipo.co.nz/mailman/listinfo/koha
>
> --
> Paul Hoffman <[hidden email]>
> Software Manager
> Fenway Library Organization
> 550 Huntington Ave.
> Boston, MA 02115
> (617) 442-2384 (FLO main number)

--
Paul Hoffman <[hidden email]>
Software Manager
Fenway Library Organization
550 Huntington Ave.
Boston, MA 02115
(617) 442-2384 (FLO main number)
_______________________________________________
Koha mailing list  http://koha-community.org
[hidden email]
https://lists.katipo.co.nz/mailman/listinfo/koha
Reply | Threaded
Open this post in threaded view
|

Re: Configuring smtp mail server to work with Koha

Paul Hoffman
In reply to this post by Javed Sahil
Javed,

(Please reply to my message rather than starting a new thread.)

Could you please repeat this, but with a somewhat different sequence of
commands?

    c C4::Letters::SendQueuedMessages
    c sendmail
    x \%mailcfg
    $mailcfg{'debug'} = 2
    r

Then post all of the output to the list.

Paul.

On Wed, Dec 06, 2017 at 11:47:18PM +0500, Javed Sahil wrote:

> Hi Paul,
>
> here are your required results.
>
> -- javed@iolhost:~$ koha-shell library
> [sudo] password for javed:
> library-koha@iolhost:~$ cd /usr/share/koha/bin/cronjobs
> library-koha@iolhost:/usr/share/koha/bin/cronjobs$ perl -d
> process_message_queue.pl
>
> Loading DB routines from perl5db.pl version 1.49
> Editor support available.
>
> Enter h or 'h h' for help, or 'man perldebug' for more help.
>
> main::(process_message_queue.pl:32):
> 32:    my $username = undef;
>   DB<1> c C4::Letters::sendqueuedmessages
> Subroutine C4::Letters::sendqueuedmessages not found.
>   DB<2> c C4::Letters::SendQueuedMessages
> C4::Letters::SendQueuedMessages(/usr/share/koha/lib/C4/Letters.pm:1032):
> 1032:        my $params = shift;
>   DB<3> c sendmail
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:170):
> 170:        $error = '';
>   DB<4> t
> Trace = on
>   DB<4> r
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:171):
> 171:        $log = "Mail::Sendmail v. $VERSION - "    . scalar(localtime())
> . "\n";
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:173):
> 173:        my $CRLF = "\015\012";
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:174):
> 174:        local $/ = $CRLF;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:175):
> 175:        local $\ = ''; # to protect us from outside settings
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:176):
> 176:        local $_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:178):
> 178:        my (%mail, $k,
> 179:            $smtp, $server, $port, $connected, $localhost,
> 180:            $fromaddr, $recip, @recipients, $to, $header,
> 181:            %esmtp, @wanted_methods,
> 182:           );
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:232):
> 232:        foreach $k (keys %mailcfg) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:233):
> 233:            if ($k =~ /[A-Z]/) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:233):
> 233:            if ($k =~ /[A-Z]/) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:233):
> 233:            if ($k =~ /[A-Z]/) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:233):
> 233:            if ($k =~ /[A-Z]/) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:233):
> 233:            if ($k =~ /[A-Z]/) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:233):
> 233:            if ($k =~ /[A-Z]/) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:233):
> 233:            if ($k =~ /[A-Z]/) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:233):
> 233:            if ($k =~ /[A-Z]/) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:239):
> 239:        while (@_) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:240):
> 240:            $k = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:241):
> 241:            if (!$k and $^W) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:246):
> 246:            $k = ucfirst lc($k);
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:248):
> 248:            $k =~ s/\s*:\s*$//o; # kill colon (and possible spaces) at
> end, we add it later.
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:251):
> 251:            $k =~ s/-(.)/"-" . uc($1)/ge;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:252):
> 252:            $mail{$k} = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:253):
> 253:            if ($k !~ /^(Message|Body|Text)$/i) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:255):
> 255:                $mail{$k} =~ s/\015\012?/\012/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:256):
> 256:                $mail{$k} =~ s/\012/$CRLF/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:240):
> 240:            $k = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:241):
> 241:            if (!$k and $^W) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:246):
> 246:            $k = ucfirst lc($k);
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:248):
> 248:            $k =~ s/\s*:\s*$//o; # kill colon (and possible spaces) at
> end, we add it later.
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:251):
> 251:            $k =~ s/-(.)/"-" . uc($1)/ge;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:252):
> 252:            $mail{$k} = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:253):
> 253:            if ($k !~ /^(Message|Body|Text)$/i) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:255):
> 255:                $mail{$k} =~ s/\015\012?/\012/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:256):
> 256:                $mail{$k} =~ s/\012/$CRLF/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:240):
> 240:            $k = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:241):
> 241:            if (!$k and $^W) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:246):
> 246:            $k = ucfirst lc($k);
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:248):
> 248:            $k =~ s/\s*:\s*$//o; # kill colon (and possible spaces) at
> end, we add it later.
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:251):
> 251:            $k =~ s/-(.)/"-" . uc($1)/ge;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:252):
> 252:            $mail{$k} = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:253):
> 253:            if ($k !~ /^(Message|Body|Text)$/i) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:255):
> 255:                $mail{$k} =~ s/\015\012?/\012/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:256):
> 256:                $mail{$k} =~ s/\012/$CRLF/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:240):
> 240:            $k = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:241):
> 241:            if (!$k and $^W) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:246):
> 246:            $k = ucfirst lc($k);
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:248):
> 248:            $k =~ s/\s*:\s*$//o; # kill colon (and possible spaces) at
> end, we add it later.
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:251):
> 251:            $k =~ s/-(.)/"-" . uc($1)/ge;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:252):
> 252:            $mail{$k} = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:253):
> 253:            if ($k !~ /^(Message|Body|Text)$/i) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:240):
> 240:            $k = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:241):
> 241:            if (!$k and $^W) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:246):
> 246:            $k = ucfirst lc($k);
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:248):
> 248:            $k =~ s/\s*:\s*$//o; # kill colon (and possible spaces) at
> end, we add it later.
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:251):
> 251:            $k =~ s/-(.)/"-" . uc($1)/ge;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:251):
> 251:            $k =~ s/-(.)/"-" . uc($1)/ge;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:252):
> 252:            $mail{$k} = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:253):
> 253:            if ($k !~ /^(Message|Body|Text)$/i) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:255):
> 255:                $mail{$k} =~ s/\015\012?/\012/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:256):
> 256:                $mail{$k} =~ s/\012/$CRLF/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:240):
> 240:            $k = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:241):
> 241:            if (!$k and $^W) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:246):
> 246:            $k = ucfirst lc($k);
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:248):
> 248:            $k =~ s/\s*:\s*$//o; # kill colon (and possible spaces) at
> end, we add it later.
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:251):
> 251:            $k =~ s/-(.)/"-" . uc($1)/ge;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:252):
> 252:            $mail{$k} = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:253):
> 253:            if ($k !~ /^(Message|Body|Text)$/i) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:255):
> 255:                $mail{$k} =~ s/\015\012?/\012/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:256):
> 256:                $mail{$k} =~ s/\012/$CRLF/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:240):
> 240:            $k = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:241):
> 241:            if (!$k and $^W) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:246):
> 246:            $k = ucfirst lc($k);
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:248):
> 248:            $k =~ s/\s*:\s*$//o; # kill colon (and possible spaces) at
> end, we add it later.
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:251):
> 251:            $k =~ s/-(.)/"-" . uc($1)/ge;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:251):
> 251:            $k =~ s/-(.)/"-" . uc($1)/ge;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:252):
> 252:            $mail{$k} = shift @_;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:253):
> 253:            if ($k !~ /^(Message|Body|Text)$/i) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:255):
> 255:                $mail{$k} =~ s/\015\012?/\012/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:256):
> 256:                $mail{$k} =~ s/\012/$CRLF/go;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:260):
> 260:        $smtp = $mail{'Smtp'} || $mail{'Server'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:261):
> 261:        unshift @{$mailcfg{'smtp'}}, $smtp if ($smtp and
> $mailcfg{'smtp'}->[0] ne $smtp);
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:267):
> 267:        delete $mail{'Smtp'}; delete $mail{'Server'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:267):
> 267:        delete $mail{'Smtp'}; delete $mail{'Server'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:269):
> 269:        $mailcfg{'port'} = $mail{'Port'} || $mailcfg{'port'} || 25;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:270):
> 270:        delete $mail{'Port'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:272):
> 272:        my $auth = $mail{'Auth'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:273):
> 273:        delete $mail{'Auth'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:277):
> 277:            local $^W = 0;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:277):
> 277:            local $^W = 0;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:278):
> 278:            $mail{'Message'} = join("", $mail{'Message'},
> $mail{'Body'}, $mail{'Text'});
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:282):
> 282:        delete $mail{'Body'}; delete $mail{'Text'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:282):
> 282:        delete $mail{'Body'}; delete $mail{'Text'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:286):
> 286:        $fromaddr = $mail{'Sender'} || $mail{'From'} ||
> $mailcfg{'from'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:288):
> 288:        unless ($fromaddr =~ /$address_rx/) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:291):
> 291:        $fromaddr = $1;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:294):
> 294:        $mail{Date} ||= time_to_date() ;
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:143):
> 143:        my $time = $_[0] || time(); # default to now if no argument
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:145):
> 145:        my @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov
> Dec);
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:146):
> 146:        my @wdays  = qw(Sun Mon Tue Wed Thu Fri Sat);
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:148):
> 148:        my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
> 149:            = localtime($time);
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:151):
> 151:        my $TZ = $mailcfg{'tz'};
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:152):
> 152:        if ( $TZ eq "" ) {
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:154):
> 154:            my $offset  = sprintf "%.1f", (timegm(localtime) - time) /
> 3600;
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:98):
> 98:        my ( $sec, $min, $hour, $mday, $month, $year ) = @_;
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:100):
> 100:        if ( $year >= 1000 ) {
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:107):
> 107:        unless ( $Options{no_range_check} ) {
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:108):
> 108:            croak "Month '$month' out of range 0..11"
> 109:                if $month > 11
> 110:                or $month < 0;
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:112):
> 112:        my $md = $MonthDays[$month];
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:113):
> 113:            ++$md
> 114:                if $month == 1 && _is_leap_year( $year + 1900 );
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:116):
> 116:            croak "Day '$mday' out of range 1..$md"  if $mday > $md or
> $mday < 1;
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:117):
> 117:            croak "Hour '$hour' out of range 0..23"  if $hour > 23  or
> $hour < 0;
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:118):
> 118:            croak "Minute '$min' out of range 0..59" if $min > 59   or
> $min < 0;
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:119):
> 119:            croak "Second '$sec' out of range 0..59" if $sec >= 60  or
> $sec < 0;
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:122):
> 122:        my $days = _daygm( undef, undef, undef, $mday, $month, $year );
> Time::Local::_daygm(/usr/share/perl/5.22/Time/Local.pm:75):
> 75:            $Cheat{ pack( 'ss', @_[ 4, 5 ] ) } ||= do {
> Time::Local::_daygm(/usr/share/perl/5.22/Time/Local.pm:76):
> 76:                my $month = ( $_[4] + 10 ) % 12;
> Time::Local::_daygm(/usr/share/perl/5.22/Time/Local.pm:77):
> 77:                my $year  = $_[5] + 1900 - int($month / 10);
> Time::Local::_daygm(/usr/share/perl/5.22/Time/Local.pm:79):
> 79:                ( ( 365 * $year )
> 80:                  + int( $year / 4 )
> 81:                  - int( $year / 100 )
> 82:                  + int( $year / 400 )
> 83:                  + int( ( ( $month * 306 ) + 5 ) / 10 )
> 84:                )
> 85:                - $Epoc;
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:124):
> 124:        unless ($Options{no_range_check} or abs($days) < $MaxDay) {
> Time::Local::timegm(/usr/share/perl/5.22/Time/Local.pm:134):
> 134:        return $sec
> 135:               + $SecOff
> 136:               + ( SECS_PER_MINUTE * $min )
> 137:               + ( SECS_PER_HOUR * $hour )
> 138:               + ( SECS_PER_DAY * $days );
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:155):
> 155:            my $minutes = sprintf "%02d", abs( $offset - int($offset) )
> * 60;
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:156):
> 156:            $TZ  = sprintf("%+03d", int($offset)) . $minutes;
> Mail::Sendmail::time_to_date(/usr/share/perl5/Mail/Sendmail.pm:158):
> 158:        return join(" ",
> 159:                        ($wdays[$wday] . ','),
> 160:                         $mday,
> 161:                         $months[$mon],
> 162:                         $year+1900,
> 163:                         sprintf("%02d:%02d:%02d", $hour, $min, $sec),
> 164:                         $TZ
> 165:                   );
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:295):
> 295:        $log .= "Date: $mail{Date}\n";
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:298):
> 298:        $mail{'Message'} =~ s/\r\n/\n/go;     # normalize line endings,
> step 1 of 2 (next step after MIME encoding)
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:300):
> 300:        $mail{'Mime-Version'} ||= '1.0';
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:301):
> 301:        $mail{'Content-Type'} ||= 'text/plain; charset="iso-8859-1"';
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:303):
> 303:        unless ( $mail{'Content-Transfer-Encoding'}
> 304:              || $mail{'Content-Type'} =~ /multipart/io )
> 305:        {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:306):
> 306:            if ($mailcfg{'mime'}) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:307):
> 307:                $mail{'Content-Transfer-Encoding'} = 'quoted-printable';
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:308):
> 308:                $mail{'Message'} = encode_qp($mail{'Message'});
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:321):
> 321:        $mail{'Message'} =~ s/^\./\.\./gom;     # handle . as first
> character
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:322):
> 322:        $mail{'Message'} =~ s/\n/$CRLF/go; # normalize line endings,
> step 2.
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:326):
> 326:            local $^W = 0;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:326):
> 326:            local $^W = 0;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:327):
> 327:            $recip = join(", ", $mail{To}, $mail{Cc}, $mail{Bcc});
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:330):
> 330:        delete $mail{'Bcc'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:332):
> 332:        @recipients = ();
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:333):
> 333:        while ($recip =~ /$address_rx/go) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:334):
> 334:            push @recipients, $1;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:336):
> 336:        unless (@recipients) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:341):
> 341:        $localhost = hostname_long() || hostname() || 'localhost';
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:161):
> 161:        return $hostlong if defined $hostlong;     # Cached copy (takes
> a while to lookup sometimes)
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:162):
> 162:        my ($ip, $debug) = @_;
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:164):
> 164:        $hostlong = dispatcher('uname');
> Sys::Hostname::Long::dispatcher(/usr/share/perl5/Sys/Hostname/Long.pm:143):
> 143:        my ($method, @rest) = @_;
> Sys::Hostname::Long::dispatcher(/usr/share/perl5/Sys/Hostname/Long.pm:144):
> 144:        $lastdispatch = $method;
> Sys::Hostname::Long::dispatcher(/usr/share/perl5/Sys/Hostname/Long.pm:145):
> 145:        return $dispatch{$method}{exec}(@rest);
> Sys::Hostname::Long::CODE(0x1dd7a50)(/usr/share/perl5/Sys/Hostname/Long.pm:51):
> 51:                return eval {
> Sys::Hostname::Long::CODE(0x1dd7a50)(/usr/share/perl5/Sys/Hostname/Long.pm:52):
> 52:                    local $SIG{__DIE__};
> Sys::Hostname::Long::CODE(0x1dd7a50)(/usr/share/perl5/Sys/Hostname/Long.pm:53):
> 53:                    require POSIX;
> Sys::Hostname::Long::CODE(0x1dd7a50)(/usr/share/perl5/Sys/Hostname/Long.pm:54):
> 54:                    (POSIX::uname())[1];
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:166):
> 166:        unless ($hostlong =~ m|.*\..*|) {
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:167):
> 167:            if ($^O eq 'MacOS') {
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:193):
> 193:                $hostlong = dispatcher('exec_hostname_fqdn');
> Sys::Hostname::Long::dispatcher(/usr/share/perl5/Sys/Hostname/Long.pm:143):
> 143:        my ($method, @rest) = @_;
> Sys::Hostname::Long::dispatcher(/usr/share/perl5/Sys/Hostname/Long.pm:144):
> 144:        $lastdispatch = $method;
> Sys::Hostname::Long::dispatcher(/usr/share/perl5/Sys/Hostname/Long.pm:145):
> 145:        return $dispatch{$method}{exec}(@rest);
> Sys::Hostname::Long::CODE(0x1de1810)(/usr/share/perl5/Sys/Hostname/Long.pm:77):
> 77:                my $tmp;
> Sys::Hostname::Long::CODE(0x1de1810)(/usr/share/perl5/Sys/Hostname/Long.pm:78):
> 78:                if ( $^O ne 'darwin' ) {
> Sys::Hostname::Long::CODE(0x1de1810)(/usr/share/perl5/Sys/Hostname/Long.pm:79):
> 79:                    if ($< == 0) {
> Sys::Hostname::Long::CODE(0x1de1810)(/usr/share/perl5/Sys/Hostname/Long.pm:82):
> 82:                        $tmp = `hostname --fqdn`;
> Sys::Hostname::Long::CODE(0x1de1810)(/usr/share/perl5/Sys/Hostname/Long.pm:84):
> 84:                    $tmp =~ tr/\0\r\n//d;
> Sys::Hostname::Long::CODE(0x1de1810)(/usr/share/perl5/Sys/Hostname/Long.pm:86):
> 86:                return $tmp;
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:196):
> 196:            if (!defined($hostlong) || $hostlong eq "") {
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:202):
> 202:            if ($ip && !defined($hostlong) || $hostlong eq "") {
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:206):
> 206:        warn "Sys::Hostname::Long - Last Dispatch method =
> $lastdispatch" if ($debug);
> Sys::Hostname::Long::hostname_long(/usr/share/perl5/Sys/Hostname/Long.pm:207):
> 207:        return $hostlong;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:343):
> 343:        foreach $server ( @{$mailcfg{'smtp'}} ) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:343):
> 343:        foreach $server ( @{$mailcfg{'smtp'}} ) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:346):
> 346:            unless ( socket S, AF_INET, SOCK_STREAM,
> scalar(getprotobyname 'tcp') ) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:350):
> 350:            print "- trying $server\n" if $mailcfg{'debug'} > 1;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:352):
> 352:            $server =~ s/\s+//go; # remove spaces just in case of a typo
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:354):
> 354:            $port = ($server =~ s/:(\d+)$//o) ? $1 : $mailcfg{'port'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:355):
> 355:            $smtp = $server; # save $server for use outside foreach loop
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:357):
> 357:            my $smtpaddr = inet_aton $server;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:358):
> 358:            unless ($smtpaddr) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:363):
> 363:            my $retried = 0; # reset retries for each server
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:364):
> 364:            while ( ( not $connected = connect S,
> pack_sockaddr_in($port, $smtpaddr) )
> 365:                and ( $retried < $mailcfg{'retries'} )
> 366:                  ) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:367):
> 367:                $retried++;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:368):
> 368:                $error .= "connect to $server failed ($!)\n";
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:369):
> 369:                print "- connect to $server failed ($!)\n" if
> $mailcfg{'debug'} > 1;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:370):
> 370:                print "retrying in $mailcfg{'delay'} seconds...\n" if
> $mailcfg{'debug'} > 1;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:371):
> 371:                sleep $mailcfg{'delay'};
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:374):
> 374:            if ( $connected ) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:379):
> 379:                $error .= "connect to $server failed\n";
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:380):
> 380:                print "- connect to $server failed, next server...\n"
> if $mailcfg{'debug'} > 1;
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:381):
> 381:                next; # next server
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:385):
> 385:        unless ( $connected ) {
> Mail::Sendmail::sendmail(/usr/share/perl5/Mail/Sendmail.pm:386):
> 386:            return fail("connect to $smtp failed ($!) no (more)
> retries!")
> Mail::Sendmail::fail(/usr/share/perl5/Mail/Sendmail.pm:187):
> 187:            $error .= join(" ", @_) . "\n";
> Mail::Sendmail::fail(/usr/share/perl5/Mail/Sendmail.pm:188):
> 188:            if ($server_reply) {
> Mail::Sendmail::fail(/usr/share/perl5/Mail/Sendmail.pm:192):
> 192:            close S;
> Mail::Sendmail::fail(/usr/share/perl5/Mail/Sendmail.pm:193):
> 193:            return 0;
> scalar context return from Mail::Sendmail::sendmail: 0
> C4::Letters::_send_message_by_email(/usr/share/koha/lib/C4/Letters.pm:1349):
> 1349:            _set_message_status( { message_id =>
> $message->{'message_id'},
> 1350:                    status     => 'failed' } );
>   DB<4>
>
> Regards,
>
> Javed Shoukat
>
> Management Trainee Officer (MTO)
> Lahore University of
> Management Sciences (LUMS),
> Lahore.
>
> Contact #: +92 300 6548748 <+92%20300%206548748>
> Email: [hidden email]

--
Paul Hoffman <[hidden email]>
Software Manager
Fenway Library Organization
550 Huntington Ave.
Boston, MA 02115
(617) 442-2384 (FLO main number)
_______________________________________________
Koha mailing list  http://koha-community.org
[hidden email]
https://lists.katipo.co.nz/mailman/listinfo/koha