News:

è disponibile So.Di.Linux 2025, distro italiana per la scuola basata su mint mate 20 >>> clicca qui

Menu principale

[RISOLTO (in parte)] inviare e-mail html con heirloom-mailx

Aperto da vrn, Giovedì 16 Febbraio 2017, 15:36:11

Discussione precedente - Discussione successiva

vrn

Attualmente utilizzo linux mint per inviare e-mail da programmi in "c" uso heirloom-mailx *senza* passare attraverso sendmail.

Preparo nel programma una stringa del tipo
strcpy (cmd, "mailx -s \"OGGETTO\" NOME@DOMINIO.IT < BODY.TXT");
poi la eseguo
system (cmd);
se serve posso aggiungere allegati con l'opzione -a.

Tutte le configurazioni sono nel file ~/.mailrc.

set nss-config-dir=~/.mozilla/firefox/xxxxxxxx.default
set ssl-verify=ask                    # strict ask warn ignore
set realname="Nome Cognome"

set smtp-use-starttls
set smtp=smtp://smtp.tim.it:587
set smtp-auth=login
set smtp-auth-user=xxxxxx@tim.it
set smtp-auth-password=xxxxxx
set from="xxxxxx@tim.it"


In questo modo tutto funziona correttamente con i body formato testo.

Ora ho il problema di inviare un file body del tipo html.

Ho cercato su internet ed ho trovato questa stringa che funziona

mailx -s "$(echo -e "oggetto\nContent-Type: text/html")" infol@aaa.it < body.html

ma *solo* se viene scritta a terminale ed eseguita direttamente.

Se la metto in un file ed eseguo il file *non* funziona, analogamente se tento di eseguirla da programma "c" con system().

Ritengo che tutto dipenda da come viene interpretata l'espressione tra apici.

Potendo vorrei continuare con heirloom-mailx, e' semplice da installare e da configurare e si esce direttamente via smtp, senza sendmail.

Qualcuno ha qualche suggerimento su come far funzionare la stringa eseguendola come file o, in alternativa, su come forzare il Content-Type su mailx ?

Grazie in anticipo.

vrn

Mi scuso per l'errore che mi sono accorto di avere commesso nelle mie prove.  ;D

Nel programma avevo scritto
snprintf(xcmd, 256, "mailx -s \'%s\' %s < %s", io.ioobj, pads, xbdyfnm)
con <'> anziche' <"> e questo spiega perche' system () non eseguiva la stringa.

La stringa
mailx -v -s "$(echo "subject\nContent-Type: text/html")" aaa@bbb.it < body.html
funziona e la pagina html viene interpretata.

Pero' e' una forzatura sull'header (tipo header injection) che crea anche dei problemi.

Se si aggiunge un allegato (una foto ipg) il rendering della mail e' sbagliato e
la foto viene riportata nel seguito della mail *senza* essere sviluppata.

Non so se sia un caso, ma alcune mail spedite in questo modo sono state considerate junk da tunderbird.

Rinuncio all'invio di mail html in questo modo.

Ringrazio per l'attenzione, saluti a tutti.  :ciao: