Afficher image dans un mail

Pour afficher une image dans un e-mail, vous pouvez utiliser plusieurs méthodes en fonction de votre environnement de développement et de votre système d'envoi d'e-mails. Voici quelques-unes des méthodes les plus courantes :

Méthode 1 : Envoi d'une image en pièce jointe

Vous pouvez envoyer l'image en pièce jointe en utilisant un langage de programmation comme Python ou Java. Voici un exemple en Python avec la bibliothèque smtplib :

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.utils import COMMASPACE
from email import encoders

msg = MIMEMultipart()
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
msg['Subject'] = 'Image en pièce jointe'

body = MIMEText('Voici une image')
body.attach(MIMEImage(open('image.jpg', 'rb').read()))
msg.attach(body)

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('[email protected]', 'your_password')
server.sendmail('[email protected]', '[email protected]', msg.as_string())
server.quit()

Méthode 2 : Envoi d'une image en ligne

Vous pouvez également envoyer l'image en ligne en utilisant un service de stockage de fichiers en ligne comme Amazon S3 ou Google Cloud Storage. Voici un exemple en Python avec la bibliothèque boto3 pour Amazon S3 :

import boto3

s3 = boto3.client('s3')

msg = MIMEMultipart()
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
msg['Subject'] = 'Image en ligne'

body = MIMEText('Voici une image')
body.set_payload(open('image.jpg', 'rb').read())
body.add_header('Content-Disposition', 'attachment; filename="image.jpg"')
msg.attach(body)

s3.put_object(Body=body.get_payload(), Bucket='your_bucket_name', Key='image.jpg')

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('[email protected]', 'your_password')
server.sendmail('[email protected]', '[email protected]', msg.as_string())
server.quit()

Méthode 3 : Envoi d'une image en base64

Vous pouvez également envoyer l'image en base64 en utilisant un langage de programmation comme JavaScript ou Python. Voici un exemple en JavaScript avec la bibliothèque node-mailer :

const nodemailer = require('nodemailer');

let transporter = nodemailer.createTransport({
  host: 'smtp.gmail.com',
  port: 587,
  secure: false, // or 'STARTTLS'
  auth: {
    user: '[email protected]',
    pass: 'your_password'
  }
});

let mailOptions = {
  from: '[email protected]',
  to: '[email protected]',
  subject: 'Image en base64',
  text: 'Voici une image',
  html: '<img src="data:image/jpeg;base64,' + Buffer.from('image.jpg', 'binary').toString('base64') + '">'
};

transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
    return console.log(error);
  }
  console.log('Message sent: ' + info.response);
});

Notez que pour les méthodes 1 et 2, vous devrez configurer votre serveur SMTP et votre compte e-mail pour autoriser l'envoi d'e-mails. Pour la méthode 3, vous devrez installer la bibliothèque node-mailer et configurer votre serveur SMTP.