[BSD] postfix + vacation nem megy port update után

Lóránth Csaba cs.loranth at freemail.hu
2014. Jún. 27., P, 16:42:21 CEST


Sziasztok, Leírom a megoldást, talán másnak is jól jöhet. Hiba: Az 1074 revíziós vacation.pl nem megy 0.8.22 Mail::Sender csomaggal 1. postfixadmin frissítés a legutolsó verzióra portból- postfixadmin-2.3.6, aztán ez még  nem elég, mert a portban nem a legutolsó postfixadmin verziót telepíti a freebsd2. 1615 revíziós vacation.pl letöltése a postfixadmin.org oldalról és lecserélése a /var/spool/vacation könyvtárban3. szükséges konfig paraméterek megadása a vacation.pl-ben4. "activefrom"; "activeuntil" mezők létrehozása a mysql vacation táblában, az új mezők típusa "date"5. "interval_time" mező létrehozása a mysql vacation táblában, mező típusa "time", default értéke 16. vacation.pl 390-es sor környékén a NOW függvényt curdate-re kell cserélni. Az "activeutil" mezőben dátumegyenlőség esetén nem adott választ a NOW, míg a curdate szépen működött#   my $query = qq{SELECT email FROM vacation WHERE email=? and active=$db_true and activefrom <= NOW() and activeuntil >= NOW()};
    my $query = qq{SELECT email FROM vacation WHERE email=? and active=$db_true and activefrom <= curdate() and activeuntil >= curdate()};7.roundcube/pfadmin_autoresponder plugin  pfadmin_autoresponder.php-ben, a 36-os sor környékén is igazítani kellett, csak akkor írta át a mysql-ben az adatokat, ha két részre bontottam az insertet, előbb az active értéket írtam be, majd a többi változót# private $sql_update = 'insert into vacation (email, active, subject, body, activefrom ,activeuntil) values (%u, %o, %s, %m, %f, %d) on duplicate key update active = %o, body = %m, activefrom = %f, activeuntil =%d;';  private $sql_update = 'insert into vacation (email, active) values (%u, %o) on duplicate key update active = %o; insert into vacation (email, subject, body, activefrom ,activeuntil) values (%u, %s, %m, %f, %d) on duplicate key update subject = %s, body = %m, activefrom = %f, activeuntil =%d;'; Ennyit szívtam csak ezzel, mert azt gondoltam, hogy egy updatelt rendszer milyen jó nekem. Igen erről már volt korábban levelezés, hogy ki miben hisz, de a jó megoldást most sem tudom. Pozitívum annyi volt, hogy vacation esetén legalább aktív lett a dátum tartomány, amit eddig kikommenteztem.Az meg külön bosszantó, hogy a freebsd port sem naprakész, a postfixadmin esetén is el van maradva vagy másfél évvel - Last commit date: 2014-02-21 13:37:57. Viszont a postfixadmin már 2.91-nél jár. Így eleve a később javított hibák sem épülnek be, tehát marad a foltozgatás. Üdv:Csabi 
"Lóránth Csaba" <cs.loranth at freemail.hu> írta:
>Köszi a válaszod. Teljesen jól "lefordítottad", de az én problémámat nem oldotta meg.Még mindig ezen a Mail::Sender hibán bénázok. Itt van egy nyitott case rá, hogy a TLS alapban aktív lett, ami a problémát okozza. Megoldásra írja, hogy tls_allowed => 0 kikapcsolja a tls-t. No most ezt átírtam a Sender.pm-bem - 970-es sor, de probléma maradt. Jó helyen csináltam? Csabi   https://rt.cpan.org/Public/Bug/Display.html?id=85438 In 0.8.22 the case of the 'tls_allowed' attribute was fixed, so the default of 1 is actually effective. But this fix has a problem (besides the fact that the POD still has the upper case 'TLS_allowed'): With this setting, and given that TLS is supported, IO::Socket::SSL tries a hostname verification and for this it needs a ca file which is not found (unless by chance there is a file in 'certs/my-ca.pem'). This in turn leads to a not very informative error message: "Failed to send the message: Connection not established" when trying to send a message in Mail::Sender. So, I think it would be helpful to - fix the documentation to at least make it easy to switch TLS off (tls_allowed => 0, not TLS_allowed) - either allow a parameter to pass the ca_file and/or default e.g. to Mozilla::CA::SSL_ca_file() if Mozilla::CA is installed, else give a hint that it won't work without a ca_file as long as tls_allowed is switched on. - if it still failes, give a better error message. While debugging I inserted a die IO_SOCKET_SSL(IO::Socket::SSL::errstr()) which is also returned in the 0.8.22 code but somehow doesn't make it to STDOUT. This would give a message like "error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed" which helps a lot if used in Google. Until this issue is fixed and if someone finds this report having the same problem, here is my temporary fix: use Mozilla::CA; IO::Socket::SSL::set_defaults( SSL_ca_file => Mozilla::CA::SSL_ca_file(), );  
>Gabor HALASZ <halasz.g at freemail.hu> írta:

>>On 6/6/2014 6:51 PM, Lóránth Csaba wrote:
>>
>>> this issue can be avoided. Just put a "use SSLFix" in the Mal::Sender
>>                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>> source code and everything works like a charm.
>>>
>>> Here is the code for "SSLFix.pl"
>>>
>>> --------------------------- SSLFix.pm -----------------------------------
>>>
>>> use strict;
>>> use warnings;
>>> package SSLFix;
>>> use IO::Socket::SSL 1.982;
>>>
>>> IO::Socket::SSL::set_args_filter_hack( sub {
>>> my ($is_server,$args) = @_;
>>> # CA mit
>>> CN=server3.presseservicebuero.de/emailAddress=jens.struck at germanonlinepublisher.com
>>> # über Fingerprint als trusted angeben
>>> $args->{SSL_fingerprint} = 'sha1$e3dd23963cae604403ead7767d600568a6667178'
>>> if ! $is_server;
>>> });
>>>
>>> 1;
>>>
>>> No most nem vagyok egy perl guru, de hova is kell ezt beírni?
>>>
>>Ott irja, ahol alahuztam. Leforditom: perl -V -vel megnezed a @INC 
>>tartalmat, valamelyik dirbe berakod az sslfix.pm-edet 
>>(/usr/local/lib/perl5/site_perl/<perl verzio>/ a standard helye az 
>>ilyesminek), utana megkeresed a Mail/Sender.pm-et (az is a 
>>/usr/local/lib/perl5/site_perl/<perl verzio>/ alatt lesz), csinalsz rola 
>>egy masolatot, mert ha belepiszkalsz, akkor idegeskedni fog kesobb a 
>>pkg(ng), majd egyszeruen beleirod a use-ok moge a javasoltat (case 
>>sensitive), persze idezojel nelkul, ahogy a tobbi use direktiva van, es 
>>pontosvesszo is kell a sor vegere.
>>--
>>Magyar BSD Levelezőlista

>
>Köszi a válaszod. Teljesen jól "lefordítottad", de az én problémámat nem oldotta meg.
>
>Még mindig ezen a Mail::Sender hibán bénázok. Itt van egy nyitott case rá, hogy a TLS alapban aktív lett, ami a problémát okozza. Megoldásra írja, hogy tls_allowed => 0 kikapcsolja a tls-t. No most ezt átírtam a Sender.pm-bem - 970-es sor, de probléma maradt. Jó helyen csináltam?
>
> 
>
>Csabi
>
> 
>
> 
>
> 
>
>https://rt.cpan.org/Public/Bug/Display.html?id=85438
>
> 
>
>In 0.8.22 the case of the 'tls_allowed' attribute was fixed, so the default of 1 is actually effective. But this fix has a problem (besides the fact that the POD still has the upper case 'TLS_allowed'): With this setting, and given that TLS is supported, IO::Socket::SSL tries a hostname verification and for this it needs a ca file which is not found (unless by chance there is a file in 'certs/my-ca.pem'). This in turn leads to a not very informative error message: "Failed to send the message: Connection not established" when trying to send a message in Mail::Sender. So, I think it would be helpful to - fix the documentation to at least make it easy to switch TLS off (tls_allowed => 0, not TLS_allowed) - either allow a parameter to pass the ca_file and/or default e.g. to Mozilla::CA::SSL_ca_file() if Mozilla::CA is installed, else give a hint that it won't work without a ca_file as long as tls_allowed is switched on. - if it still failes, give a better error message. While debugging I inserted a die IO_SOCKET_SSL(IO::Socket::SSL::errstr()) which is also returned in the 0.8.22 code but somehow doesn't make it to STDOUT. This would give a message like "error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed" which helps a lot if used in Google. Until this issue is fixed and if someone finds this report having the same problem, here is my temporary fix: use Mozilla::CA; IO::Socket::SSL::set_defaults( SSL_ca_file => Mozilla::CA::SSL_ca_file(), );
>
> 
>
> 
>
>
>Gabor HALASZ  írta:
>On 6/6/2014 6:51 PM, Lóránth Csaba wrote:
>
>> this issue can be avoided. Just put a "use SSLFix" in the Mal::Sender
>                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> source code and everything works like a charm.
>>
>> Here is the code for "SSLFix.pl"
>>
>> --------------------------- SSLFix.pm -----------------------------------
>>
>> use strict;
>> use warnings;
>> package SSLFix;
>> use IO::Socket::SSL 1.982;
>>
>> IO::Socket::SSL::set_args_filter_hack( sub {
>> my ($is_server,$args) = @_;
>> # CA mit
>> CN=server3.presseservicebuero.de/emailAddress=jens.struck at germanonlinepublisher.com
>> # über Fingerprint als trusted angeben
>> $args->{SSL_fingerprint} = 'sha1$e3dd23963cae604403ead7767d600568a6667178'
>> if ! $is_server;
>> });
>>
>> 1;
>>
>> No most nem vagyok egy perl guru, de hova is kell ezt beírni?
>>
>Ott irja, ahol alahuztam. Leforditom: perl -V -vel megnezed a @INC 
>tartalmat, valamelyik dirbe berakod az sslfix.pm-edet 
>(/usr/local/lib/perl5/site_perl// a standard helye az 
>ilyesminek), utana megkeresed a Mail/Sender.pm-et (az is a 
>/usr/local/lib/perl5/site_perl// alatt lesz), csinalsz rola 
>egy masolatot, mert ha belepiszkalsz, akkor idegeskedni fog kesobb a 
>pkg(ng), majd egyszeruen beleirod a use-ok moge a javasoltat (case 
>sensitive), persze idezojel nelkul, ahogy a tobbi use direktiva van, es 
>pontosvesszo is kell a sor vegere.
>--
>Magyar BSD Levelezőlista
>
>
>--
>Magyar BSD Levelezőlista
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://datacast.hu/pipermail/bsd/attachments/20140627/cdc02166/attachment-0001.html>


További információk a(z) BSD levelezőlistáról