Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Byla vydána nová verze 0.4.15 (𝕏) svobodného operačního systému ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows. Přehled novinek i s náhledy v oznámení o vydání.
Byl představen rpi-image-gen, tj. oficiální nástroj pro vytváření vlastních softwarových obrazů pro zařízení Raspberry Pi.
Byla vydána nová major verze 8.0, aktuálně 8.0.1, softwaru pro správu elektronických knih Calibre (Wikipedie). Přehled novinek v poznámkách k vydání. Vypíchnuta je lepší podpora Kobo KEPUB formátu nebo integrovaný lokálně běžící engine Piper pro převod textu na řeč používaný pro čtení nahlas (již od verze 7.18).
Společnost OpenAI rozšířila své API o nové audio modely. Nový model pro převod textu na řeč (text-to-speech model) lze bez přihlašování vyzkoušet na stránce OpenAI.fm.
Příspěvek Bezpečnost paměti pro webové fonty na blogu Chrome pro vývojáře rozebírá, proč se pro zpracování webových fontů v Chrome místo FreeType nově používá v Rustu napsaná Skrifa z Fontations.
V pátek 21. a v sobotu 22. března proběhnou Arduino Days 2025, tj. každoroční „narozeninová oslava“ platformy Arduino. Na programu je řada zajímavých přednášek. Sledovat je bude možné na YouTube. Zúčastnit se lze i lokálních akcí. V sobotu v Praze na Matfyzu.
Komunitná konferencia Bratislava OpenCamp, ktorá sa uskutoční už o tri týždne 5. 4. 2025 na FIIT STU pozná svoj program – návštevníkom ponúkne 3 paralelné behy prednášok a workshopov na rôzne témy týkajúce sa otvoreného softvéru či otvorených technológií.
Časopis MagPi od nakladatelství Raspberry Pi se s číslem 151 přejmenoval na Raspberry Pi Official Magazine. I pod novým názvem zůstává nadále ve formátu pdf zdarma ke čtení.
Japonská SoftBank Group kupuje firmu Ampere Computing za 6,5 miliardy dolarů. Ampere Computing vyrábí 32-128jádrové procesory Ampere Altra a 192jádrové procesory AmpereOne.
autoresponder unix - n n - - pipe
flags= user=nobody argv=/usr/local/sbin/autoreply/autoreply.pl $sender $mailbox
Skript se podívá do sql databáze, zda příjemce mailu má aktivní automatickou odpověď a zda již odesílateli tuto odpověď již v minulosti neposlal a pak pošle autoreply. Nicméně dále mám ještě přes /etc/postfix/mysql-virtual.cf nadefinované mimojiné forwardy. A to konkrétně:
email=jmeno@mojedomena.cz destination=jmeno@mojedomena.cz, kolega@mojedomena.czTím sice docílím toho, že mail je doručen do "mojí" schránky i do schránky kolegy, ale autoresponder v tomto případě nepředá skriptu v proměnné $mailbox jmeno@mojedomena.cz, ale kolega@mojedomena.cz. Poradí někdo, jak docílit toho, aby v tomto případě předal skriptu adresu jmeno@mojedomena.cz? Díky.
Řešení dotazu:
${mailbox} This macro expands to the complete local part of a recip- ient address. For example, with an address user+foo@domain the mailbox is user+foo. A command-line argument that contains ${mailbox} expands to as many command-line arguments as there are recipi- ents.Ukaz ten skript autoreply.pl. Hadam, ze skript spatne prebira nebo zpracovava vsechny parametry.
#!/usr/bin/perl use DBI; use Mail::Mailer; use MIME::Words qw(:all); open CONF, "/usr/local/sbin/autoreply/db.conf"; #open LOG, ">/tmp/mailreply.txt"; while ($radek= {CONF}) { chomp($radek); { $radek=~m/^(\w+)\s+(\S+).*$/; $conf{$1}=$2; } } close CONF; $email=$ARGV[0]; $emailto=$ARGV[1]; #print LOG $email."\n"; #print LOG $emailto."\n"; @cas = localtime(time); $year = 1900 + @cas[5]; $mon = "0".(1 + @cas[4]); $day = @cas[3]; $hour = @cas[2]; $min = @cas[1]; $sec = @cas[0]; $datum = sprintf("%04d%02d%02d%02d%02d%02d", $year, $mon, $day, $hour, $min, $sec); $dsn = "DBI:mysql:database=$conf{database};host=$conf{server};port=$conf{port}"; $reply = DBI -> connect($dsn , $conf{username} , $conf{password}); die "$DBI::errstr" if $DBI::err; $setlatin = $reply -> prepare("SET character_set_results=latin2"); $setlatin -> execute(); $setlatin = $reply -> prepare("SET character_set_connection=latin2"); $setlatin -> execute(); $setlatin = $reply -> prepare("SET character_set_client=latin2"); $setlatin -> execute(); $select = $reply -> prepare("select id,recipient,Subject,message from autoreply where recipient='$emailto' and valid_from<'$datum' and valid_to>'$datum'"); $select -> execute(); die "$DBI::errstr" if $DBI::err; while (($id,$recipient,$Subject,$message) = $select -> fetchrow()) { $poslano = $reply -> prepare("select id from autoreply_sent where replyid=$id and mail_from='$email'"); $poslano -> execute(); die "$DBI::errstr" if $DBI::err; $rownumber = $poslano -> rows(); if ($rownumber == 0) { printf "Bude poslana zprava na mail ".$email." ve zneni ".$message; my $mailer = Mail::Mailer->new("sendmail"); my $charset = 'ISO-8859-2'; my $mailmssg = $message; $mailer->open({From => $emailto, To => $email, Subject => encode_mimewords($Subject, Charset => $charset), 'MIME-Version' => '1.0', 'Content-Type' => "text/plain; charset=$charset", 'Content-Transfer-Encoding' => '8bit', }); print $mailer $mailmssg; $mailer -> close(); $poslano = $reply -> prepare("insert into autoreply_sent (replyid, mail_from) values('$id', '$email')"); $poslano -> execute(); die "$DBI::errstr" if $DBI::err; } }
$emailto=$ARGV[1];Takze se do skriptu ta druha adresa nedostane i kdyby tam nakrasne byla. Ted je otazka jestli se predavaji adresy vsechny na zaklade toho preposilani (@#ARGV), nebo si je bude muset dohledat na zaklade uzivatele v databazi sam a nasledne preposlat na vsechny.
open LOG, ">/tmp/mailreply.txt";a nekde si tam pridej:
foreach my $arg(@ARGV) { print LOG "$arg\n"; }Posli mail a podivej se jake parametry to predalo.
Tiskni
Sdílej: