Newsgroup: it.comp.java
Titolo: email con immagini embedded

Ciao a tutti!
Qualcuno sa come poter inviare email con immagini embedded? Cioè con
immagini che non sono allegate, ma memorizzate dentro il messaggio
Grazie del vostro aiuto!!


http://csvtosql.sf.net

javamail?
Dimmi qualcos'altro per favore

 Dimmi qualcos'altro per favore
http://java.sun.com/products/javamail/
http://www.rgagnon.com/javadetails/java-0504.html


 Dimmi qualcos'altro per favore
Mail di questo tipo sono fatte in HTML. Devi innanzi tutto comporre un
"modello" di messaggio tramite un web designer (o anche il notepad se ce la
fai), con l'obbiettivo finale di poter vedere la pagina in un browser
aprendola con un doppio click. Le risorse che userai nella pagina (immagini,
suoni, script, ecc...) dovranno essere poste nella stessa directory del file
html.
Finita questa preparazione, prima di iniziare a lavorare con JavaMail devi
fare un'ultimo lavoro di modifica del corpo HTML della mail: ovunque vi sia
un riferimento ad una risorsa da usare nella pagina, dovrai aggiungere
l'indicatore "cid:" davanti al nome del file, ad esempio:
<BODY background="sfondo.jpg">  diventa  <BODY background="cid:sfondo.jpg">
<IMG src="logo.gif">   diventa   <IMG src="cid:logo.gif">
e cosě via...
Fatto questo, puoi usare JavaMail per creare il tuo messaggio. La
documentazione a riguardo č abbastanza chiara, devi solo avere l'accortezza
di creare un MimeBodyPart il cui sorgente (javax.activation.FileDataSource)
sia il tuo HTML, e sia impostato con 
   bodypart.setDisposition(Part.INLINE);
mentre tutti i file di supporto saranno incorporati in altrettanti
MimeBodyPart, impostati con setDisposition(Part.ATTACHMENT).
Ricordati anche di crearti una mappa di tipi MIME. Questo serve piů che
altro ai client che visualizzeranno la tua mail, per comprendere i tipi di
file con cui avranno a che fare.
Questo spezzone potrebbe esserti utile:
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.util.*;
....
  //Creazione della mappa MIME per i tipi di file piů usati
  MimetypesFileTypeMap typemap=new MimetypesFileTypeMap();
  typemap.addMimeTypes("text/html htm html HTM HTML");
  typemap.addMimeTypes("image/jpeg jpg jpeg JPG JPEG");
  typemap.addMimeTypes("application/x-javascript js JS");
  typemap.addMimeTypes("image/gif gif GIF");
  typemap.addMimeTypes("image/png png PNG");
  //Aggiungine quanti ne ritieni opportuno. La sintassi č semplice:
  //"tipo/sottotipo estensione1 estensione2 estensione3 .... estensioneN"
  //Guarda nel registry di Windows in HKEY_CLASSES_ROOT per avere un aiuto
 
  //Creazione del contenitore delle parti (body e attachment)
  Multipart mp=new MimeMultipart();
  //Creazione del body e aggiunta al contenitore
  MimeBodyPart bodypart=new MimeBodyPart();
  FileDataSource fdsbody=new FileDataSource(*percorso dell'HTML*);
  fdsbody.setFileTypeMap(typemap);
  bodypart.setDataHandler(new DataHandler(fdsbody));
  bodypart.setDisposition(Part.INLINE);
  mp.addBodyPart(bodypart);
  //...e per ogni allegato:
  //N.B. attachfiles č un HashSet contenente una serie di stringhe che
  //rappresentano i percorsi di tutti gli allegati
  for(Iterator iter=attachfiles.iterator();iter.hasNext();) {
    File attatchfile=(File)iter.next();
    MimeBodyPart attachpart=new MimeBodyPart();
    FileDataSource fdsattach=new FileDataSource(attachfile);
    fdsattach.setFileTypeMap(typemap);
    attachpart.setDataHandler(new DataHandler(fdsattach));
    attachpart.setFileName(attachfile.getName());
    attachpart.setDisposition(Part.ATTACHMENT);
    mp.addBodyPart(attachpart);
  }
Ora il contenuto del tuo messaggio č in "mp". Non devi fare altro che usare
il metodo setContent di un oggetto MimeMessage... beh, qualcosa dovrai fare
anche te ;)
Buon lavoro
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://xenu.freewinds.cx/
 - 
http://www.xenu.net/
(per rispondere personalmente leva IlDitoDalCulo)

   //rappresentano i percorsi di tutti gli allegati
chiedo scusa, errore mio: č un HashSet di File


Grazie mille per il vostro aiuto!!
Siccome utilizzo JBuilder, qualcuno sa come fare per utilizzare
JavaMail con JBuilder? Oppure sapete se JBuilder ha qualcosa di
proprietario per l'invio delle email in html ??
Grazie di nuovo!