# [SOLVED] aiuto per script automatico

## mdr5

ciao a tutti.

avrei bisogno di aiuto per scrivere un programmino che scarichi delle pagine web a scadenza programmata (tipo tutti i giorni alla stessa ora) e le invii ad uno o più indirizzi di posta.

mi serve perchè volevo fare una specie di rassegna web personale.

c'è un piccolo problemino: non ho la più pallida idea di dove partire...

qualcuno mi può aiutare?Last edited by mdr5 on Thu Apr 05, 2007 4:45 pm; edited 1 time in total

----------

## lavish

Spostato da Forum italiano (Italian) a Forum di discussione italiano, visto che non ha alcuna attinenza con gentoo.

Comunque non mi sembra molto difficile la cosa.. fai uno script che usi in cron che scarica le pagine con wget, parsi eventualmente le pagine se le vuoi formattare diversamente e le invii con un qualsiasi MTA

----------

## comio

 *mdr5 wrote:*   

> ciao a tutti.
> 
> avrei bisogno di aiuto per scrivere un programmino che scarichi delle pagine web a scadenza programmata (tipo tutti i giorni alla stessa ora) e le invii ad uno o più indirizzi di posta.
> 
> mi serve perchè volevo fare una specie di rassegna web personale.
> ...

 

lista della spesa:

cron (per schedulare)

wget (per scaricare)

sendmail o mail (per inviare la mail)

ciao

----------

## djinnZ

 *comio wrote:*   

> lista della spesa:
> 
> cron (per schedulare)
> 
> wget (per scaricare)
> ...

 

oppure sitecopy per trasformare pagine dinamiche in html statico al posto di wget

----------

## mdr5

 *Quote:*   

> 
> 
> lista della spesa:
> 
> cron (per schedulare)
> ...

 

ho fatto qualche passetto:

con wget sono riuscito a scaricare le pagine che mi interessano e a salvarle separatamente in directory all'interno di una sottodirectory usando questo comando

```

 wget -p -P /home/ecc.../ecc... --convert-links http://ecc...

```

e grazie a kcron a farlo ad orari stabiliti.

purtroppo non so da che parte iniziare con sendmail (l'uso di kcron al posto di cron la dice lunga sulla mia dimestichezza....)

io ho un'account gmail che vorrei utiilizzare per l'invio ad altri indirizzi di posta.

da che parte inizio?

altra domandina: come faccio a creare un file zip con le dir delle pagine scaricate ed allegarlo alla mail?

grazie ancora per l'aiuto.

----------

## makoomba

```
* net-mail/sendEmail 

     Available versions:  1.52 ~1.54 ~1.55

     Installed:           none

     Homepage:            http://caspian.dotconf.net/menu/Software/SendEmail/

     Description:         Command line based, SMTP email agent

```

----------

## mdr5

sendmail l'ho già installato ed ho anche provato a dare un'occhiata a man sendmail.

purtroppo questo è il mio primo approccio a questo tipo di cose e non sono riuscito a capirci molto su come dire a sendmail di prendere qualche cosa, di spedirlo a qualcuno e di usare un particolare indirizzo.

qualche indizio più "semplice"?

----------

## mdr5

ok ci ho provato leggendo meglio la pagina segnalata prima

http://caspian.dotconf.net/menu/Software/SendEmail/

ho prvato questo comando

```

sendmail -f .........@gmail.com -xu user -xp passwd -u prova -m ciao -t ........@libero.it

```

ma mi ritorna questo errore

```

sendmail: illegal option -- x

```

naturalmente su user e passwd ho inserito quelli dell'account gmail.

----------

## Kernel78

Tu parli di sendmail (mail-mta/sendmail) ma makoomba ti ha suggerito sendEmail (net-mail/sendEmail).

Non fare confusione  :Wink: 

----------

## mdr5

oops è vero...

ho rimediato ma ho ancora problemi.

```

Mar 22 22:54:39 tuxbox sendEmail[26313]: ERROR => Connection attempt to localhost:25 failed: IO::Socket::INET: connect: Connessione rifiutata

```

il comando era come quello di prima ma con sendEmail

----------

## Kernel78

Purtroppo io non ho mai usato sendEmail ma per fare quello che vuoi fare tu ho seguito questa guida.

----------

## comio

 *mdr5 wrote:*   

> oops è vero...
> 
> ho rimediato ma ho ancora problemi.
> 
> ```
> ...

 

dove hai il server smtp? o usi il tuo (ma lo devi installare/configurare) o ti appoggi a quello di qualche altro.

ciao

----------

## lavish

 *comio wrote:*   

> dove hai il server smtp? o usi il tuo (ma lo devi installare/configurare) o ti appoggi a quello di qualche altro.

 

Aveva scritto di voler usare quello di gmail, quindi il link passato da Kernel78 per configurare ssmtp va benissimo.

In alternativa, questa e' una possibile configurazione con nbsmtp per gmail:

```
relayhost = smtp.googlemail.com

fromaddr = <user>@gmail.com

domain = gmail.com

auth_user = <user>@gmail.com

auth_pass = <password> 

auth_mech = LOGIN

use_tls = True

port = 465 

debug = 2
```

----------

## mdr5

grazie ma ancora poche buone notizie.

ho provato con ssmtp ma quando provo a mandare una mail con questo comando

```

sendEmail -f ssmtp@localhost -u prova -m ciao -t .........@libero.it

```

mi ritorna questo errore

```

sendEmail -f ssmtp@localhost -u prova -m ciao -t mauridr@libero.it

Mar 23 19:33:48 tuxbox sendEmail[11972]: ERROR => Connection attempt to localhost:25 failed: IO::Socket::INET: connect: Connessione rifiutata

```

questo è il mio file di conf. di ssmtp

```

root=................@gmail.com

mailhub=smtp.gmail.com:587

rewriteDomain=

hostname=...............@gmail.com

UseSTARTTLS=YES

AuthUser=userid

AuthPass=passwd

FromLineOverride=YES

```

dove sbaglio?

----------

## makoomba

sendEmail lo usi direttamente specificando l'smtp a cui spedire (opzione -s).

sfortunatamente (mi sovviene ora) con gmail è obbligatorio usare TLS per il relay e sendEmail non lo supporta.

quindi, se devi spedire tramite smtp.gmail.com ad un indirizzo diverso da @gmail.com, non lo puoi usare....

un tool analogo (che però supporta TLS) è swaks.

```
* net-mail/swaks 

     Available versions:  20060621.0 ~20061116.0

     Installed:           none

     Homepage:            http://www.jetmore.org/john/code/#swaks

     Description:         Swiss Army Knife SMTP; Command line SMTP testing, including TLS and AUTH

```

ps.

sia swaks che sendEmail spediscono direttamente al server smtp che indichi nella linea di comando.

con questa modalità di funzionamento, non ti serve installare ssmtp.

----------

## mdr5

grazie per la dritta.

avresti anche un esempio per mandare una mail con un allegato il tutto da linea di comendo?

dovrei inserirlo in kcron...

----------

## .:deadhead:.

Perchè non provi a leggere un poco la documentazione fornita con il programma o presente nel sito e fai tu dei tentativi? Avrai molta + soddisfazione e di sicuro otterrà il risultato che vuoi. Se chiedi soluzioni già fatte, che cosa avrai imparato?

Son convinto che tu possa trovare da solo la soluzione finale per il tuo problema  :Wink: 

----------

## gutter

Moved from Forum italiano (Italian) italiano to Forum di discussione.

----------

## mdr5

rieccomi!!!

è vero che facendo le cose piàù autonomamente si ottengono maggiori soddisfazioni... ma sapete com'è alle volte si vorrebbero vedere risultati più in fretta... santa impazienza!!!

comunque: dopo un pò di lettura ed un pò di test sono arrivato al punto che riesco a mandare una mail da un indirizzo gmail ad uno che voglio io grazie a SWAKS. 

adesso mi manca una cosa che proprio non sono riuscito a fare: come faccio ad allegare un file alla mail?

ho provato con l'opzione --attach ma mi arriva una mail con un file dal nome bodypart.txt allegato all'interno del quale c'è il percorso che ho specificato dopo --attach

il comando che uso al momento è questo:

```

swaks -f xxxxxxxx@gmail.com -t xxxxxxx@libero.it -s smtp.googlemail.com --body ciao -p 587 -tls -au username -ap passwd --attach /home/mauri/Desktop/wget/text.txt

```

----------

## makoomba

prova così

```
...  --attach-type 'text/plain; name="text.txt"'  --attach /home/mauri/Desktop/wget/text.txt
```

----------

## mdr5

ho provato il suggerimento di makoomba ma il risultato praticamente è lo stesso, solo che il file si chiama text.txt al posto di bodypart.txt.

all'interno del file c'è sempre il percorso che ho specificato dopo --attach.

non so se può servire ma il risultato finale vorrebbe essere l'invio di un file zippato con all'interno pagine web e relative sottocartelle.

qualche altra prova da fare?

----------

## makoomba

io ottengo quel risultato se specifico un file inesistente.

sei sicuro che il file esista e/o l'utente col quale lanci il comando abbia il permesso di lettura ?

----------

## mdr5

avevi ragione!!! non è che il file non esistesse: il fatto era che io indicavo text.txt e non Text.txt....

adesso funziona!!!

grazie a tutti per i consigli e per avermi "spronato".....

----------

## lucapost

Utilizzo pure io ssmtp per inviare al mio indirizzo di posta gmail qualche informazione su da un pc remoto.

Gmail ha la splendida funzione di raggruppare la mail di una catena di risposte, modo molto intelligente di organizzare la mail. Chi utilizza gmail spero abbia capito di cosa parlo.

Le email che arrivano hanno sempre lo stesso oggetto, stesso mittente e destinatario, solo contenuto diverso, ed al momento ho utilizzato un filtro per taggarle tutte, cosa ben diversa da quella che vorrei ottenere.

Quello che vorrei ottenere è raggruppare nel modo descritto sopra le email che in arrivo dal pc remoto.

LP

----------

## cloc3

 *lucapost wrote:*   

> 
> 
> Quello che vorrei ottenere è raggruppare nel modo descritto sopra le email che in arrivo dal pc remoto.
> 
> 

 

il raggruppamento viene realizzato da gmail sulla base dei tag Subject, Message-ID e In-Reply-To che sono contenuti nella sezione metadati (header) della mail (quella che puoi ricavare, ad esempio, cliccando su mostra originale quando navighi gmail in modalità base - o se usi konqueror).

ci sono programmi come mutt che dovrebbero permettere di fare qualcosa di analogo.

----------

## lucapost

Ho creato un file di testo del tipo

```
Subject: ...

Message-ID: ...

In-Reply-To: ...

testo

```

inserendo le stesse informazioni che ho ricavato dall'opzione "show original" nell'interfaccia di gmail.

Ho inviato tramire:

```
cat message.txt |ssmtp
```

ma non ottengo nessun risultato utile, nessun raggruppamento.

----------

## cloc3

 *lucapost wrote:*   

> 
> 
> Ho inviato tramire:
> 
> ```
> ...

 

non sono in grado di darti la soluzione esatta, perché non me la ricordo nel dettaglio, ma, tempo fa, ho fatto dei giochini e incontrato lo stesso problema.

il guasto era che, per ragioni non ben comprensibili, ssmtp non inoltrava il contenuto prelevato dalla pipe.

alla fine ho trovato un accrocchio (mi pare appoggiandomi a mutt), che permetteva di raggiungere lo scopo.

----------

## lucapost

 *cloc3 wrote:*   

> ssmtp non inoltrava il contenuto prelevato dalla pipe.
> 
> 

 

Lo inoltra eccome, solamente come contenuto ti testo.

Ora cerco se c'è bisogno di mantenere un'ordine particolare nel passare quelle opzioni.

Grazie della disponibilità e delle informazioni, continuerò le ricerche.

----------

## cloc3

 *lucapost wrote:*   

> Ho creato un file di testo del tipo
> 
> 

 

```

echo risposta|mutt -H header

s939 ~ # cat header 

MIME-Version: 1.0

Subject: oggetto 

From: topolino <paperino@gmail.com>

To: nonna papera <nonna_papera@gmail.com> 

Reply-To: nonna papera <nonna_papera@gmail.com>

In-Reply-To: <20090423003719.GA17141@s939>

Content-Type: text/plain; charset=UTF-8

Content-Transfer-Encoding: quoted-printable

```

 *man ssmtp wrote:*   

> 
> 
> It does not attempt to provide all the functionality of sendmail: it  is  intended  for  use where  other  programs  are  the primary means of at last mail delivery.
> 
> 

 

sembra molto interessante, inoltre il sendEmail di makoomba.

----------

## lucapost

```
#> ACCEPT_KEYWORDS="~amd64" emerge sendEmail -pv

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild  N    ] perl-core/Scalar-List-Utils-1.19  43 kB

[ebuild  N    ] dev-perl/Net-SSLeay-1.35  130 kB

[ebuild  N    ] dev-java/antlr-2.7.7  USE="cxx java python -debug -doc -examples -mono -script -source" 1,774 kB

[ebuild  N    ] virtual/perl-Scalar-List-Utils-1.19  0 kB

[ebuild  N    ] dev-java/gjdoc-0.7.9-r1  USE="-source -xmldoclet" 735 kB

[ebuild  N    ] net-dns/libidn-1.13  USE="java nls -doc -emacs -mono" 2,519 kB

[ebuild  N    ] dev-perl/Net-LibIDN-0.12  14 kB

[ebuild  N    ] dev-perl/IO-Socket-SSL-1.24  64 kB

[ebuild  N    ] net-mail/sendEmail-1.55  USE="ssl" 27 kB

Total: 9 packages (9 new), Size of downloads: 5,304 kB
```

```
#> emerge mutt -pv

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild  N    ] app-misc/mime-types-7  7 kB

[ebuild  N    ] www-client/lynx-2.8.6-r2  USE="bzip2 nls ssl unicode -cjk -ipv6" LINGUAS="-ja" 2,238 kB

[ebuild  N    ] mail-client/mutt-1.5.16  USE="berkdb crypt gdbm nls ssl -debug -gnutls -gpgme -idn -imap -mbox -nntp -pop -qdbm -sasl -sidebar -smime -smtp -vanilla" 3,509 kB

Total: 3 packages (3 new), Size of downloads: 5,753 kB
```

Par bon, nel caso considererò se passare a mutt.

Anche se si porta dietro lynx, mi andava così bene w3m per le situazioni di emergenza...

----------

