Domanda

Se posso allegare un'immagine a un messaggio email, come posso inserirlo nel codice HTML contenuto?Ho provato usando solo il nome di file dell'immagine sorgente, ma che non sembra funzionare.

È stato utile?

Soluzione

Essere più specifiche su come si costruisce il messaggio di posta elettronica HTML.

Il risultato sarà un messaggio multipart-MIME con una parte text / html (se davvero fate a destra, con una parte alternativa di tipo text / plain) immagini e diversi, che vengono poi fatto riferimento all'interno del codice HTML.

RFC 1813 e RFC 2378 per ulteriori informazioni su Content-ID in MIME mista ei relativi dati (di cui dal CID nel codice HTML).

Altri suggerimenti

È possibile utilizzare allo stesso modo con la proprietà src="cid:bgBoletin" di tag img.

La risposta alla tua domanda è nella documentazione di primavera qui .

 mailSender.send(new MimeMessagePreparator() {
   public void prepare(MimeMessage mimeMessage) throws MessagingException {
     MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
     message.setFrom("me@mail.com");
     message.setTo("you@mail.com");
     message.setSubject("my subject");
     message.setText("my text <img src='cid:myLogo'>", true);
     message.addInline("myLogo", new ClassPathResource("img/mylogo.gif"));
   }
 });

Il corpo del messaggio è una delle parti del messaggio multipart (notare il secondo parametro impostato su true sul costruttore di MimeMessageHelper che imposta il messaggio a un messaggio multipart).

Il message.addInline("myLogo"... riga aggiunge l'immagine come un'altra parte del messaggio multipart.

È possibile utilizzare .setText per impostare il corpo (contenuto HTML) del messaggio di posta elettronica.

È possibile fare riferimento ad altre parti del email multipart (l'immagine) utilizzando il tag cid. Si noti come l'attributo img src è src='cid:myLogo'. CID è l'id contenuto dell'immagine, inviato come una delle parti del messaggio multipart.

Lo sto facendo in questo modo

_mime = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource("C:\\bgBoletin.jpg");

messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID", "<bgBoletin>");
_mime.addBodyPart(messageBodyPart);

E nel file HTM whe di riferimento de Content-ID in questo modo di fondo: url (cid: bgBoletin).

Se questo ha a che fare con l'invio di messaggi di posta elettronica da un sito web che si sta sviluppando, basta tenere le immagini sul server e quindi collegare a loro utilizzando il <img src="url"/>.

L'immagine in allegato la sezione ha bisogno di Content-ID

--T4nu9J8b
Content-Type: image/png
Content-ID: <idname>
Content-Transfer-Encoding: base64
Content-Disposition: attachment ;filename="testimage.png"

iVBORw0KGgoAAAANS...
--T4nu9J8b--

Nota:Content-ID nome dovrebbe essere messo in una parentesi angolare, come dato

Incorporare in tag con lo stesso ID di Contenuto (senza le parentesi angolare)

<img alt="Embedded Image" src="cid:idname"/>

Questo dovrebbe permettere l'immagine allegata per essere visualizzate in HTML!

Opzione 01:
- allegare il file "mySignaturePictue.jpg" come allegato alla mail
- riferimento questo attaccamento dal corpo (inserirla) con codice come:
<img src="cid:mySignaturePicture.png">

Opzione 02:
- convertire l'immagine in una stringa base64: http://www.motobit.com /util/base64-decoder-encoder.asp
- inserire al mailtext / html-corpo con codice come
<img alt="My Image" src="data:image/jpeg;base64,AWWhcalkjsd/beginning/RXhp/of+/long/base64cod/ZgAATU0/+BlaBlubbZ5u8/61a+Xand/much/more..." />
- Downside: questo è bloccato dalla maggior parte dei clienti e aumenterà la dimensione elettronica, vedere: https://www.campaignmonitor.com/blog/email-marketing/2013/02/embedded-images-in-html-email/ e https://www.paperstreet.com/blog/email -commercializzazione-immagini-embeded-cid-cosa-a-mess /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top