Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sähköpostin lähettämisen automatisointi

52 views
Skip to first unread message

Kari Pasanen

unread,
Feb 21, 2009, 4:16:48 AM2/21/09
to
Tehtäväni olisi lähettää sähköpostia pienen yhdistyksen jäsenkunnalle,
muutamalle kymmenelle henkilölle. Jäsenrekisteriä pidetään
OpenOffice.org:lla taulukkona (.ods ja .csv).

Viestiin pitäisi saada henkilökohtainen osa, jolla ilmoitetaan jäsenmaksun
maksamista varten henkilökohtainen viitenumero. Helpointa näyttäisi olevan
viitenumeron sisällyttäminen viestin vastaanottaja-kenttään (To: 1234
<ni...@domain.fi>), jolloin varsinaisen viestin sisältö olisi kaikille sama.

Vastaanottajien sähköpostiosoitteiden olisi tarkoitus pysyä yksityisinä, ts.
vastaanottajat eivät näkisi toistensa osoitteita. Viestin voisi lähettää
piilokopioina (vastaanottajien osoitteet Bcc-kenttään) kaiken muun puolesta
paitsi että vastaanottaja ei näe silloin henkilökohtaista viitenumeroaan
vastaanottaja-kentästä.

Viesti on siis lähetettävä yksitellen jokaiselle vastaanottajalle. Jos
viitenumeroa ei laiteta vastaanottaja-kenttään, niin viestin runkoa on
muokattava jokaiselle erikseen.

Vastaanottajien määrä on sikäli kohtuullinen, että voisin lähettää
vakiosisältöisen viestin jokaiselle käsityönäkin, poimimalla
vastaanottajaksi yhden kerrallaan listasta, jossa ne ovat muodossa 1234
<ni...@domain.fi>.

Voikos tuon kuitenkin tehdä automatisoidusti? Kyllä varmaan, mutta minä en
ole vielä keksinyt sitä tapaa. Tutkittuja mahdollisuuksia:

- Käyttämässäni sähköpostiohjelmassa Kmail ei näytä olevan mahdollista
käyttää jakelulistaa sillä toivomallani tavalla, että jokaiselle listalla
olevalle lähetetään oma viestinsä, jossa eivät näy muiden vastaanottajien
osoitteet. Onko olemassa sähköpostiohjelmaa, jossa olisi tällainen
ominaisuus?

- OpenOffice.org:ssa on ominaisuus "joukkokirje", jonka voisi lähettää myös
sähköpostina. Ilmeisesti en osaa käyttää sitä. En pääse ohjatussa
joukkokirjeen luonnissa pitemmälle kuin kohtaan, jossa pitäisi valita
osoitelista. Osoitelistan kai voisi ottaa myös .csv-tiedostosta, mutta en
ole päässyt perille siitä, miten ohjelmalle määritellään tietueen kenttä,
jossa on sähköpostiosoite. Olettaakohan se kentille tietyn järjestyksen,
josta en tiedä mitään? En halua nähdä sitä vaivaa, että loisin osoitelistan
kirjoittamalla siihen kaikki osoitteet, jotka jo ovat tiedostossa valmiina.

- Komentorivin käyttäminen ei pelota. Valmiina olevan vastaanottajalistan
voisi helposti muokata skriptiksi, joka lähettää tekstitiedostoon
kirjoitetun viestin jokaiselle vastaanottajalle erikseen. Mutta millä
komennolla? mail-komennolla se ei näytä onnistuvan; minä en näe siinä
olevan optiota, jolla lähetetään tiedostossa oleva viesti.

Jospa tässä ryhmässä joku osaisi neuvoa.

Kari Pasanen

SilverSurfer

unread,
Feb 21, 2009, 4:43:26 AM2/21/09
to
Kari Pasanen kirjoitti:

> Tehtäväni olisi lähettää sähköpostia pienen yhdistyksen jäsenkunnalle,
> muutamalle kymmenelle henkilölle. Jäsenrekisteriä pidetään
> OpenOffice.org:lla taulukkona (.ods ja .csv).

Postituslista? majordomo? Vaihtoehtoja lienee lukemattomiin. Google
groupskin tuon taitaa osata.

Jussi Piitulainen

unread,
Feb 21, 2009, 6:13:11 AM2/21/09
to
Kari Pasanen writes:

> - Komentorivin käyttäminen ei pelota. Valmiina olevan
> vastaanottajalistan voisi helposti muokata skriptiksi, joka lähettää
> tekstitiedostoon kirjoitetun viestin jokaiselle vastaanottajalle
> erikseen. Mutta millä komennolla? mail-komennolla se ei näytä
> onnistuvan; minä en näe siinä olevan optiota, jolla lähetetään
> tiedostossa oleva viesti.

Katoavaa kansanperinnettä:

mail -s 'Hei 102' use...@world.example < lasku-102.txt

(Gnus inttää, ettei tätä voi lähettää, kun Subject-header muka
puuttuu. Kokeilen, tunnistaisiko se otsikkorivin, jos poistan siitä
ääkköset, jotka kyllä näkyvät minulle oikein. Menee yli ymmärrykseni.)

footy

unread,
Feb 21, 2009, 8:09:06 AM2/21/09
to

Mielenkiintoista.
Yhdellä koneella ei intä mitään jos otsikkorivillä ääkkösiä. Eikä
lähetäkään sitä. (exim4) Vai oliskoos vastaanotossa vika?

Toisella koneella lähtee (ja tulee perillekin)

Kari Pasanen

unread,
Feb 21, 2009, 8:14:52 AM2/21/09
to
Jussi Piitulainen kirjoitti:

> Katoavaa kansanperinnettä:
>
> mail -s 'Hei 102' use...@world.example < lasku-102.txt

Tämä näyttää lupaavalta. Eihän sitä aina muista, että on inputin ja outputin
ohjausmahdollisuus.

Jospa sitten vaan vältän ääkkösiä otsikossa.

Nyt vielä ilmeisesti pitäisi konffata mailia, että se osaisi lähettää.

Kari Pasanen

Teemu Likonen

unread,
Feb 21, 2009, 9:42:54 AM2/21/09
to
Kari Pasanen kirjoitti (21.2.2009 klo 15.14):

> Tämä näyttää lupaavalta. Eihän sitä aina muista, että on inputin ja
> outputin ohjausmahdollisuus.
>
> Jospa sitten vaan vältän ääkkösiä otsikossa.

En ole ihan varma, missä tilanteessa teillä oli ääkkösongelmia, mutta
ehkä eräs skriptini auttaa. Olen siis joskus väsännyt skriptin, jolla
voi muuttaa sähköpostien otsakkeita RFC 2047 -muotoon. Esimerkkejä:

$ echo "Tässä on ääkkösiä" | quote_rfc2047 ISO-8859-1/QP
=?ISO-8859-1?Q?T=E4ss=E4_on_=E4=E4kk=F6si=E4?=

$ echo "Tässä on ääkkösiä" | quote_rfc2047 UTF-8/64
=?UTF-8?B?VMOkc3PDpCBvbiDDpMOka2vDtnNpw6QK?=

QP eli quoted printable toimii vain Asciin kanssa yhteensopivilla
merkistöillä.

#!/bin/bash
# quote_rfc2047

# Parametriksi annetaan merkistö ja koodaustapa recode-ohjelman
# käyttämässä muodossa, esimerkiksi ISO-8859-1/QP tai UTF-8/64.
#
# Tarvitsee recode-ohjelman.


ch_enc=$(printf "%s\n" "$1" | awk '{print toupper($0)}')
charset=${ch_enc%/*}
encoding=${ch_enc#*/}

quote_q() {
sed -e "s/'/=27/g; s/\"/=22/g; s/\?/=3F/g; s/\t/=09/g; s/ /_/g"
}

while read -r line; do
string=$(printf "%s\n" "$line" | recode -- .."$ch_enc")

case "$encoding" in
QP|QUOTED-PRINTABLE)
string=$(printf "%s\n" "$string" | quote_q)
printf '=?%s?Q?%s?=\n' "$charset" "$string"
;;
64|BASE64)
printf '=?%s?B?%s?=\n' "$charset" "$string"
;;
esac
done

Kari Pasanen

unread,
Feb 22, 2009, 2:51:35 AM2/22/09
to
Teemu Likonen kirjoitti:

> Kari Pasanen kirjoitti (21.2.2009 klo 15.14):
>
>> Tämä näyttää lupaavalta. Eihän sitä aina muista, että on inputin ja
>> outputin ohjausmahdollisuus.
>>
>> Jospa sitten vaan vältän ääkkösiä otsikossa.
>
> En ole ihan varma, missä tilanteessa teillä oli ääkkösongelmia,

Minulla niitä ei ole, koska lähetykseni mail-komennolla eivät ole
onnistuneet siitä riippumatta, onko subjektissa ollut ääkkösiä. Niitä minun
ei edes olisi pakko käyttää, kyllä sen subjektin voi valita.

Mutta *tässä ketjussa* on kyllä ollut ääkkösongelma otsikossa Jussi
Piitulaisen vastauksesta lähtien.

---

Tehdäänpä nyt tilannekatsaus. Palaan hetken kuluttua kommentoimaan myös
toista saamaani vastausta.

Mail-komennolla lähetetyt viestit eivät lähde koneelta
mihinkään. /var/spool/clientmqueue:sta löytyi virhelokeja, joista
päättelen, ettei sendmail toimi. Sen virittämiseen toimivaksi en aio
tuhlata panoksia.

Olen huomannut myös toisen esteen mail-komennon käyttämiseen. Haluaisin
määritellä lähettäjän nimen ja osoitteen, mikä ei näytä olevan mahdollista
mailissa.

Näiden toistaiseksi ratkaisemattomien ongelmien takia taidan lähettää
viestit yhdistyksen jäsenille sähköpostiohjelmasta manuaalimenetelmällä
yksitellen ja vielä tänään. Pidän silti kysymykseni voimassa!

Kari Pasanen

Kari Pasanen

unread,
Feb 22, 2009, 2:59:47 AM2/22/09
to
SilverSurfer kirjoitti:

Ei ole kovin hyödyllinen vastaus tämä. Näyttää siltä, ettet ole lukenut
viestiäni lainaamaasi osaa pitemmälle.

Tarkoitus ei ole luoda mitään itsepalvelujärjestelmää. Kysymys on
yksisuuntaisesta kommunikoinnista yhdistyksen sihteeriltä niille jäsenille,
joilla on sähköpostiosoite (noin puolella jäsenistä on). Minulla on ne
osoitteet jäsenrekisterissä, enkä halua ylläpitää niitä kahdessa paikassa.

Kun itse ongelma on yksinkertainen, siihen pitää olla myös yksinkertainen
ratkaisu. Se ei tarkoita aivan toiseen tarkoitukseen suunniteltua
järjestelmää, jonka käyttöönotto ja ylläpito minun tarkoitukseeni
vaatisivat minulta enemmän työtä kuin koko homman tekeminen käsin.
Sellaista ratkaisua ei ole vielä löytynyt.

Kari

Teemu Likonen

unread,
Feb 22, 2009, 4:52:22 AM2/22/09
to
Kari Pasanen kirjoitti (22.2.2009 klo 9.51):

> Mail-komennolla lähetetyt viestit eivät lähde koneelta mihinkään.
> /var/spool/clientmqueue:sta löytyi virhelokeja, joista päättelen,
> ettei sendmail toimi. Sen virittämiseen toimivaksi en aio tuhlata
> panoksia.

Jos viritysinto loppuu jo tuohon, niin paras vaihtoehto on ilmeisesti
lähettää viestit yksitellen.

Minä virittäisin sendmailin kuntoon ja käyttäisin omaa skriptiä, joka
lähettää viestit Mutt-sähköpostiohjelman avulla. Mutt on parempi kuin
mail, koska se hoitaa merkistöasiat kunnolla (ei tule ääkkösongelmia).
Muttin asetuksiin kannattaa laittaa ainakin seuraavat:

set realname="Kari Pasanen"
set from=joku@osoite
set use_from=yes
set use_envelope_from=yes

Debianissa oletus-sendmail tulee exim4-paketissa. Sen viritys onnistuu
komennolla "dpkg-reconfigure exim4-config". Muista distroista en tiedä.

Alla on yhdenlainen esimerkkitoteutus ja skriptin prototyyppi:


#!/bin/sh

otsikko="Olis taas jäsenmaksun maksamisen aika"

for henkilo in jäsenet/* ; do
osoite=$(head -n1 "$henkilo")
(cat yhteisviesti.txt ; sed -ne '3,$p' "$henkilo") | \
mutt -s "$otsikko" -- "$osoite"
done
### Loppuu tähän


Skripti lähettää jäsenille viestin, jonka sisältönä on tiedosto
yhteisviesti.txt ja sen perässä kunkin jäsenen henkilökohtainen
viestiosa. Henkilökohtainen osa sekä jäsenen sähköpostiosoite
määritellään toisessa tiedostossa: hakemistoon jäsenet/ laitetaan
kutakin jäsentä kohti tekstitiedosto (tiedoston nimellä ei ole
merkitystä). Tiedoston ensimmäiselle riville laitetaan vastaanottajan
nimi ja sähköpostiosoite:

Erkki Esimerkki <oso...@jossain.netissä>

Tiedoston toinen rivi jätetään tyhjäksi ja sen jälkeen seuraa
mahdollinen tämän henkilön yksityinen viestiosa.

Yllä oleva skripti on vain prototyyppiesimerkki. Älä käytä sitä sokkona,
jos et ymmärrä sen toimintaa.

Ari Laitinen

unread,
Feb 22, 2009, 7:50:19 AM2/22/09
to
Kari Pasanen wrote:

> Mail-komennolla lähetetyt viestit eivät lähde koneelta
> mihinkään. /var/spool/clientmqueue:sta löytyi virhelokeja, joista
> päättelen, ettei sendmail toimi. Sen virittämiseen toimivaksi en aio
> tuhlata panoksia.

Mail (smtp) on nettioperaattoreilla kotiliittymissä yleensä estetty. Yleensä
sen toimimaan saattamiseksi tarvitsee ohittaa tuo esto käyttämällä
operaattorin postipalvelinta mailin käyttämän oman postipalvelimen sijaan.

Lähettäjän nimen ja osoitteen asettaminen onnistuu mailissa kyllä mutta vain
root käyttäjälle.


Vahis

unread,
Feb 22, 2009, 8:34:56 AM2/22/09
to

Tämä on ennenkin kiinnostanut, mutta aina jäänyt vaiheeseen.
Eli miten saa järjestelmän lähettämään postia käyttäen ISP:n tai miksei
vaikka Gmailin SMTP:tä?

Käytännössä loggaan normaalisti ssh:lla sisään ja luen systeemimailit sitten
"paikallisesti", joten tarvetta ei juurikaan ole edes.

Vaan olisihan se mukava tuokin säätää oppimisen ilosta :)

Vahis
--
http://waxborg.servepics.com
"I can certainly imagine the Linux kernel becoming obsolete -
anything else would just be sad, really, in the big picture."
Linus Torvalds, July, 2008

Donkey Hottie

unread,
Feb 22, 2009, 9:46:39 AM2/22/09
to
Vahis <wax...@gmail.com.invalid> wrote in
news:2009022...@usenet.waxborg.local:

> Tämä on ennenkin kiinnostanut, mutta aina jäänyt vaiheeseen.
> Eli miten saa järjestelmän lähettämään postia käyttäen ISP:n
> tai miksei vaikka Gmailin SMTP:tä?
>

S�ätö on nimelt�än "smarthost" ja tietenkin riippuvainen omasta
mailipalvelimesta.

Postfixissa se on /etc/postfix/main.cf -tiedostossa

relayhost = smtp.localnet.fi

Jussi Piitulainen

unread,
Feb 23, 2009, 5:32:30 AM2/23/09
to
Teemu Likonen writes:

> En ole ihan varma, missä tilanteessa teillä oli ääkkösongelmia,

Ongelma oli minulla siinä vaiheessa, kun piti lähettää vastaukseni
tähän säikeeseen. Gnus oli sitä mieltä, että Subject-rivi puuttui,
ja kieltäytyi sillä perusteella lähettämästä viestiä. Kuitenkin
kyseinen rivi oli koko ajan siististi näkyvissä.

Emacsin mukaan (C-x = merkin päällä) otsikon ä:t ja ö:t olivat
jotain, mitä en tuntenut. Kokeilin korvata ne pisteillä. Silloin
lähettäminen yllättäen onnistui. En sitten elämöinyt enempää.

Tuommoisia ne olivat: Char: ä (07544, 3940, 0xf64, file ...)

Tämmöisiä kirjoitan nyt: Char: ä (04344, 2276, 0x8e4, file ...)

harpe

unread,
Feb 26, 2009, 1:20:00 PM2/26/09
to

Kari Pasanen kirjoitti:
>
> Mail-komennolla l�hetetyt viestit eiv�t l�hde koneelta
> mihink��n. /var/spool/clientmqueue:sta l�ytyi virhelokeja, joista
> p��ttelen, ettei sendmail toimi. Sen viritt�miseen toimivaksi en aio
> tuhlata panoksia.
>

Sensmail onkin MTA eli Postipalvelin!

> Olen huomannut my�s toisen esteen mail-komennon k�ytt�miseen. Haluaisin
> m��ritell� l�hett�j�n nimen ja osoitteen, mik� ei n�yt� olevan mahdollista
> mailissa.
>
> N�iden toistaiseksi ratkaisemattomien ongelmien takia taidan l�hett��
> viestit yhdistyksen j�senille s�hk�postiohjelmasta manuaalimenetelm�ll�
> yksitellen ja viel� t�n��n. Pid�n silti kysymykseni voimassa!
>
> Kari Pasanen


Tuohon vois käyttää sendEmail perl-scriptiä (http://en.wikipedia.org/
wiki/SendEmail), niin ei tarvitse virittää postipalvelinta toimimaan..

Tuo toimii myös cygwinillä wintoosasta..

Ari Saastamoinen

unread,
Feb 26, 2009, 2:46:45 PM2/26/09
to
harpe <harri....@gmail.com> writes:

> Tuohon vois käyttää sendEmail perl-scriptiä (http://en.wikipedia.org/
> wiki/SendEmail), niin ei tarvitse virittää postipalvelinta toimimaan..

Eikös about joka distrossa taida postipalvelin olla oletuksena niin
konffattu, että sillä pystyy lähettämään?

> Tuo toimii myös cygwinillä wintoosasta..

Miks käyttää cygwiniä perlin ajamiseen, kun wintoosalle löytyy myös
ihan natiiviperli?

PS. Noissa lainauksissa sun ääkköset olis rikki.

--
Arzka oh3mqu+...@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje

Ari Laitinen

unread,
Feb 26, 2009, 5:05:43 PM2/26/09
to
Ari Saastamoinen wrote:
> harpe <harri....@gmail.com> writes:
>
>> Tuohon vois käyttää sendEmail perl-scriptiä (http://en.wikipedia.org/
>> wiki/SendEmail), niin ei tarvitse virittää postipalvelinta
>> toimimaan..
>
> Eikös about joka distrossa taida postipalvelin olla oletuksena niin
> konffattu, että sillä pystyy lähettämään?

No esim. debianissa olisi jos asentaja olisi asentaessaan antanut
oikeanlaiset tiedot sähköpostin käsittelyä varten. Helpointa lienee vastata
näihin kysymyksiin olemalla vastaamatta, jolloin posti ei välttämättä kulje.

0 new messages