abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:44 | Pozvánky

    Přemýšlíte, jak začít prázdniny? Už v úterý 1. července se bude konat Virtuální Bastlírna, tedy online setkání bastlířů, techniků, vědců i akademiků, kde se ve volné diskuzi probírají novinky ze světa techniky, ale i jiných zajímavých témat.

    Za poslední měsíc jsme byli svědky plamenů několika raket. Zatímco malá raketa od Hondy se úspěšně vznesla a opět přistála, raketa od SpaceX se rozhodla letět všemi směry najednou. Díkybohu méně … více »
    Uprdkávač | Komentářů: 0
    včera 23:44 | Komunita

    Linus Torvalds zmínil, že souborový systém Bcachefs zřejmě odstraní z mainline Linuxu v začleňovacím okně pro vydání 6.17. Kent Overstreet mu totiž posílá kód s novou funkcionalitou i pro začlenění do kandidátů na vydání, kdy očekává pouze opravy chyb. Ken Overstreet byl již dříve z vývoje vyloučen kvůli konfliktní komunikaci.

    Fluttershy, yay! | Komentářů: 2
    27.6. 11:55 | IT novinky

    Ministerstvo průmyslu a obchodu propaguje Microsoft. Ten ve spolupráci s Ministerstvem průmyslu a obchodu spouští AI National Skilling Plan v ČR. "Iniciativa Microsoftu přináší konkrétní a praktickou podporu právě tam, kde ji nejvíc potřebujeme – do škol, firem i veřejné správy.", říká ministr průmyslu a obchodu Lukáš Vlček.

    Ladislav Hagara | Komentářů: 25
    27.6. 10:55 | Zajímavý projekt

    Jste český ISP? Vyplněním krátkého dotazníku můžete pomoci nasměrovat vývoj nové generace routerů Turris Omnia [𝕏].

    Ladislav Hagara | Komentářů: 4
    27.6. 01:33 | IT novinky

    Celkové tržby společnosti Canonical za rok 2024 byly 292 milionů dolarů (pdf). Za rok 2023 to bylo 251 milionů dolarů.

    Ladislav Hagara | Komentářů: 1
    27.6. 01:22 | Nová verze

    Byla vydána verze 1.88.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    27.6. 01:11 | Nová verze

    Distribuce Tails specializující se ochranu online soukromí uživatele byla vydána ve verzi 6.17. Mimo jiné aktualizuje Tor Browser (14.5.4) a opravuje několik chyb.

    Fluttershy, yay! | Komentářů: 0
    26.6. 21:11 | Nová verze Ladislav Hagara | Komentářů: 0
    26.6. 13:11 | IT novinky

    Město Lyon posiluje svou digitální suverenitu a postupně nahrazuje software od společnosti Microsoft bezplatnými alternativami, zejména OnlyOffice pro kancelářské aplikace a Linux a PostgreSQL pro systémy a databáze.

    Ladislav Hagara | Komentářů: 9
    26.6. 11:44 | Zajímavý projekt

    Evropská občanská iniciativa Stop Destroying Videogames se snaží o to, aby vydavatelé, kteří spotřebitelům v Evropské unii prodávají videohry nebo na ně udělují licence, měli povinnost tyto hry ponechat ve funkčním (hratelném) stavu i po ukončení podpory ze své strany. Podpořit podpisem tuto iniciativu můžete v Systému pro online sběr podpisů.

    trekker.dk | Komentářů: 5
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (28%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 331 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Jak jsem hromadně rozesílal maily

    21.2.2006 09:55 | Přečteno: 2046× | Mohlo by se někomu hodit

    Minulý týden jsem se pídil po nějakém programu na hromadné rozesílání pošty. Jediná odpověď byla ve smyslu „nejlepší je udělat si to sám“, nuže jsem si tuto radu vzal k srdci, do rukou jsem si vzal svou bibli Michal Brandejs: UNIX – LINUX a začal si oživovat nástroje pro textové zpracování.

    Rozeslat dopisy se mi nakonec podařilo s pomocí následujícího skriptu:

    #!/bin/sh
    #
    
    export from="Administrator ankety <webmaster@domena.cz>"
    export smtp=mail.domena.cz
    export ttycharset=iso-8859-2
    cp respondenti-kody-original.txt respondenti-kody.txt
    
    for OSOBA_EMAIL in `cat respondenti-mail.txt`;
    do
        KOD=`head -n1 respondenti-kody.txt`;
        sed -e '1,1d' respondenti-kody.txt > pomocna;
        cat pomocna > respondenti-kody.txt;
        cat zacatek-dopisu.txt > dopis;
        echo $KOD >> dopis;
        cat konec-dopisu.txt >> dopis;
        echo "Odesilam mail s kodem $KOD na adresu $OSOBA_EMAIL";
        mail -s "Pristupovy kod" $OSOBA_EMAIL < dopis;
    done
    
    rm pomocna
    rm dopis
    rm respondenti-kody.txt
    
    Každý řádek souboru respondenti-mail.txt obsahuje jednu mailovou adresu, každý řádek v respondenti-kody-original.txt pak jeden platný přístupový kód – těch samozřejmě musí být alespoň tolik, co mailových adres. Samotný text dopisu skládám ze dvou souborů zacatek-dopisu.txt a konec-dopisu.txt, mezi něž vkládám inkriminovaný kód.

    S čím jsem si dlouho nevěděl rady a co jsem nakonec vyřešil poněkud nehezky, bylo vyextrahování správného kódu ze souboru – jaksi se mi nepodařilo najít příkaz, který by vypsal pouze n-tý řádek z tohoto souboru. Takže si vždy zkopíruju ten první a následně jej ze souboru smažu, hloupé, že? Asi by bylo lepší mít maily i kódy v jednom souboru, vždy adresu a kód na jednom řádku a nějak to ve skriptu z toho vypreparovat – něco mi říká, že to by byl úkol pro awk – ten taky ještě neumím :(
    Ještě poznámka k znakové sadě – program mail sám (z LOCALES) pozná, že mám systém v UTF-8, já však raději chci poslat dopisy v ISO-8859-2, proto to nastavení.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    21.2.2006 10:52 kaaja | skóre: 24 | blog: Sem tam něco | Podbořany, Praha
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Napadlo me reseni jak ziskat n-ty radek ze souboru, ale neni to nic super. cat soubor | head -n cisloradku | tail -n 1
    21.2.2006 11:30 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Podívej se na příručku k awk, do kapitoly : Interval určený vzorky
    Např. program
     NR == 100, NR == 200 
    vypíše záznamy (řádky) 100 až 200.
    When your hammer is C++, everything begins to look like a thumb.
    Jiří Poláček avatar 21.2.2006 11:46 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Že bych to awk fakt někdy začal zkoumat? ;-)
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    21.2.2006 14:06 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Nebo sed .

    Jedno z dělení unixáků je na awkisty, sedisty a perlaře :-)
    Jiří Poláček avatar 21.2.2006 18:00 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    :-)

    Já budu asi ta druhá skupina
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    21.2.2006 18:32 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Já jsem tak napůl mezi první a druhou, on se většinou jeden z nich hodí výrazně víc. A kde nestačí tyto dva nástroje, nastupuje (f)lex…
    21.2.2006 21:29 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Hmm, zdá se, že jsem sed docela podcenil :-). Nic, až budu mít čas a náladu, tak si projdu man sed
    When your hammer is C++, everything begins to look like a thumb.
    xvasek avatar 22.2.2006 15:28 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Tam je prd, ale mimo jiné je tam "see also perlre", tak jsem na to mrknul a mám co jsem potřeboval. Jenom pro to už nepoužívám sed. :)
    21.2.2006 12:43 azurIt | skóre: 34 | blog: zatial_bez_mena
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    tiez nic moc ale funguje.
    pre vyextrahovanie druheho riadku:
    azurit@azurit:~$ cat pokus.txt
    prvy
    druhy
    treti
    stvrty
    azurit@azurit:~$ grep -n '.*' pokus.txt | grep '^2:' | sed -e 's/2:\(.*\)/\1/g'
    druhy
    
    21.2.2006 12:59 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
      sed -e "$n ! d"
    
    nebo méně elegantně ale efektivněji (hlavně pro delší soubory)
      sed -e "$n ! d ; $n q"
    
    21.2.2006 13:01 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Ve vašem případě by ale bylo vhodnější použít v jednom cyklu na oba soubory read.
    21.2.2006 13:11 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    (Přeci jen napsat sekvenční procházení souboru s kvadratickou časovou složitostí se obecně nepovažuje za ideální programátorský styl.) :-)
    21.2.2006 14:03 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Ale ne, proč mazat?

    sed -ne "$n p;$n q"
    David Watzke avatar 22.2.2006 03:11 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Doufej, že si tohle
    for OSOBA_EMAIL in `cat respondenti-mail.txt`
    nepřečte Hynek Vychodil... :-D

    Raději to honem nahraď za
    cat respondenti-mail.txt | while read OSOBA_EMAIL
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    David Watzke avatar 22.2.2006 06:45 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Za předpokladu, že jsou v tom souboru adresy pod sebou... jinak ještě
    sed 's: :\n:g' respondenti-mail.txt > '~'; mv '~' respondenti-mail.txt
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Jiří Poláček avatar 22.2.2006 08:10 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Asi do toho moc nevidím, protože marně hledám rozdíl ...

    Teď už ale vím, že skript potřebuje v cyklu nějakou pauzičku, zkoušel jsem ho na jiný SMTP-server a ten nějak nestíhal přijímat požadavky ... asi i toto by šlo řešit lépe než s pomocí příkazu sleep, co?
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    Jiří Poláček avatar 6.6.2006 13:53 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Opět jsem se dostal k nějakému rozesílání a na základě připomínek jsem skript optimalizoval na následující tvar:
    #!/bin/sh
    #
    
    export from="Administrator ankety <webmaster@domena.cz>"
    export smtp=mail.domena.cz
    export ttycharset=iso-8859-2
    
    citac=1
    
    cat respondenti-mail.txt | while read OSOBA_EMAIL
    do
        KOD=`sed -ne "$citac p" respondenti-kody-original.txt`;
        citac=$((citac + 1))
        cat zacatek-dopisu.txt > dopis;
        echo $KOD >> dopis;
        cat konec-dopisu.txt >> dopis;
        echo "Odesilam mail s kodem $KOD na adresu $OSOBA_EMAIL";
        mail -s "Anketa" $OSOBA_EMAIL < dopis;
        sleep 0.5;
    done
    
    rm dopis
    
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    7.7.2008 15:15 BigL
    Rozbalit Rozbalit vše Re: Jak jsem hromadně rozesílal maily
    Taky muzes zkusit primo program pro rozesilani hromadne posty (emailu) - SendMails. Najdes ho na http://www.dwn.cz/sendmails nebo na http://www.fitlinie.cz/hromadne-maily

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.