Per quanto riguarda l'aspetto legale serve se non erro l'autorizzazione degli utenti i quali decidono se ricevere o meno tali email.
Ad esempio in un portale, nella gestione del proprio profilo, ci potrebbe essere la voce "Iscriviti alla newsletter" oppure "Acconsento all'invio di email ecc. ecc. ecc. ecc..." (questo ad esempio l'ho fatto nel mio sito).
Ma credo sia meglio chiedere a chi più competente in materia.
Per lo script o programma ce ne sono diversi, più o meno complessi.
Io ad esempio ne ho realizzato uno e inserito nell'acp del mio cms che mi permette di inviare email in formato testo/html (quindi con sfondi anche importabili, eventuali pulsanti cliccabili ecc...) e nelle quali posso gestire i css (quindi l'aspetto della mail) e a breve l'inserimento anche di allegati. Il tutto in php.
Altrimenti esistono programmi installabili sul proprio pc...
Una piccola ricerca su google ci soddisferà subito.
google.it/search?hl=it&rlz=1B3GGGL_itIT259IT259&q="free+newsletter"&btnG=Cerca&meta=cr%3DcountryIT
Personalmente comunque preferisco le cose gestibili sul proprio sito.
EDIT:
Noto che nella stringa dell'indirizzo la parola newsletter viene suddivisa in due stringhe... Non so per quale motivo, comunque sia la parola è senza spazio e non ne wsletter