View | Details | Raw Unified | Return to bug 33964
Collapse All | Expand All

(-)a/C4/Letters.pm (-3 / +8 lines)
Lines 980-985 sub SendQueuedMessages { Link Here
980
    my $limit = $params->{limit};
980
    my $limit = $params->{limit};
981
    my $where = $params->{where};
981
    my $where = $params->{where};
982
982
983
    my $smtp_transports = {};
984
983
    my $count_messages = 0;
985
    my $count_messages = 0;
984
    my $unsent_messages = Koha::Notice::Messages->search({
986
    my $unsent_messages = Koha::Notice::Messages->search({
985
        status  => 'pending',
987
        status  => 'pending',
Lines 1009-1015 sub SendQueuedMessages { Link Here
1009
        # This is just begging for subclassing
1011
        # This is just begging for subclassing
1010
        next if ( lc($message->{'message_transport_type'}) eq 'rss' );
1012
        next if ( lc($message->{'message_transport_type'}) eq 'rss' );
1011
        if ( lc( $message->{'message_transport_type'} ) eq 'email' ) {
1013
        if ( lc( $message->{'message_transport_type'} ) eq 'email' ) {
1012
            my $rv = _send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} );
1014
            my $rv = _send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'}, $smtp_transports );
1013
            $count_messages++ if $rv;
1015
            $count_messages++ if $rv;
1014
        }
1016
        }
1015
        elsif ( lc( $message->{'message_transport_type'} ) eq 'sms' ) {
1017
        elsif ( lc( $message->{'message_transport_type'} ) eq 'sms' ) {
Lines 1315-1321 sub _get_unsent_messages { Link Here
1315
1317
1316
sub _send_message_by_email {
1318
sub _send_message_by_email {
1317
    my $message = shift or return;
1319
    my $message = shift or return;
1318
    my ($username, $password, $method) = @_;
1320
    my ( $username, $password, $method, $smtp_transports ) = @_;
1319
1321
1320
    my $patron;
1322
    my $patron;
1321
    my $to_address = $message->{'to_address'};
1323
    my $to_address = $message->{'to_address'};
Lines 1467-1474 sub _send_message_by_email { Link Here
1467
      if !$message->{to_address}
1469
      if !$message->{to_address}
1468
      || $message->{to_address} ne $email->email->header('To');
1470
      || $message->{to_address} ne $email->email->header('To');
1469
1471
1472
    $smtp_transports->{ $smtp_server->id } ||= $smtp_server->transport;
1473
    my $smtp_transport = $smtp_transports->{ $smtp_server->id };
1474
1470
    try {
1475
    try {
1471
        $email->send_or_die({ transport => $smtp_server->transport });
1476
        $email->send_or_die({ transport => $smtp_transport });
1472
1477
1473
        _set_message_status(
1478
        _set_message_status(
1474
            {
1479
            {
(-)a/Koha/SMTP/Server.pm (-3 / +3 lines)
Lines 61-67 sub store { Link Here
61
    $email->transport($transport);
61
    $email->transport($transport);
62
    $email->send_or_die;
62
    $email->send_or_die;
63
63
64
Returns an I<Email::Sender::Transport::SMTP> object that can be used directly
64
Returns an I<Email::Sender::Transport::SMTP::Persistent> object that can be used directly
65
with Email::Sender.
65
with Email::Sender.
66
66
67
=cut
67
=cut
Lines 88-95 sub transport { Link Here
88
88
89
    $params->{debug} = $self->debug;
89
    $params->{debug} = $self->debug;
90
90
91
    require Email::Sender::Transport::SMTP;
91
    require Email::Sender::Transport::SMTP::Persistent;
92
    my $transport = Email::Sender::Transport::SMTP->new( $params );
92
    my $transport = Email::Sender::Transport::SMTP::Persistent->new( $params );
93
93
94
    return $transport;
94
    return $transport;
95
}
95
}
(-)a/cpanfile (+1 lines)
Lines 41-46 requires 'Email::Address', '>= 1.908'; Link Here
41
requires 'Email::Date', '1.103';
41
requires 'Email::Date', '1.103';
42
requires 'Email::MessageID', '1.406';
42
requires 'Email::MessageID', '1.406';
43
requires 'Email::Sender', '1.300030';
43
requires 'Email::Sender', '1.300030';
44
requires 'Email::Sender::Transport::SMTP::Persistent', '2.6'
44
requires 'Email::Stuffer', '0.014';
45
requires 'Email::Stuffer', '0.014';
45
requires 'Exception::Class', '1.38';
46
requires 'Exception::Class', '1.38';
46
requires 'File::Slurp', '9999.13';
47
requires 'File::Slurp', '9999.13';
(-)a/t/db_dependent/Koha/SMTP/Server.t (-3 / +2 lines)
Lines 44-56 subtest 'transport() tests' => sub { Link Here
44
44
45
    my $transport = $server->transport;
45
    my $transport = $server->transport;
46
46
47
    is( ref($transport), 'Email::Sender::Transport::SMTP', 'Type is correct' );
47
    is( ref($transport), 'Email::Sender::Transport::SMTP::Persistent', 'Type is correct' );
48
    is( $transport->ssl, 0, 'SSL is not set' );
48
    is( $transport->ssl, 0, 'SSL is not set' );
49
49
50
    $server->set({ ssl_mode => '1' })->store;
50
    $server->set({ ssl_mode => '1' })->store;
51
    $transport = $server->transport;
51
    $transport = $server->transport;
52
52
53
    is( ref($transport), 'Email::Sender::Transport::SMTP', 'Type is correct' );
53
    is( ref($transport), 'Email::Sender::Transport::SMTP::Persistent', 'Type is correct' );
54
    is( $transport->ssl, '1', 'SSL is set' );
54
    is( $transport->ssl, '1', 'SSL is set' );
55
    is( $transport->debug, '0', 'Debug setting honoured (disabled)' );
55
    is( $transport->debug, '0', 'Debug setting honoured (disabled)' );
56
56
57
- 

Return to bug 33964