Bonjour,
Je cherche à envoyer un mail au format html grace à l'API javamail.
Voici le code Java que j'ai trouvé sur internet. Il fonctionne bien, j'ai fait la modif pr le format MIME en changenant:
message.setContent (content, "text/html"); pr un doc html classique: OK mais comment fait-on pr ajouter des images...ds ce doc? (Afin que les images suivent le mail, y a-t-il qqchse à declarer, faut-il gerer soi même les entêtes...
Merci
/*
* MailingList.java 1.0
* Copyright (c) 1999 Emmanuel PUYBARET - eTeks. All Rights Reserved.
*/
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class MailingList
{
public static void main (String [] args)
{
// Vérification du nombre d'arguments
if (args.length != 4)
{
System.out.println ("usage: java from smtphost mailfile destfile");
System.exit (1);
}
// Récupération des arguments
String from = args [0];
String smtphost = args [1];
String mailFile = args [2];
String destFile = args [3];
try
{
// Ouverture du fichier contenant le sujet + le message à envoyer
// et du fichier contenant les destinataires
BufferedReader mailReader = new BufferedReader (new FileReader (mailFile));
BufferedReader destReader = new BufferedReader (new FileReader (destFile));
// Lecture du sujet (première ligne)
String subject = mailReader.readLine ();
// Lecture du contenu du message
String content = "";
String line;
while ((line = mailReader.readLine ()) != null)
content += line + "\n";
mailReader.close ();
// Création d'un ensemble de propriétés
// et ouverture d'une session
Properties props = new Properties();
props.put ("mail.smtp.host", smtphost);
Session session = Session.getDefaultInstance (props, null);
String to;
// Parcours de la liste de tous les destinataires
while ((to = destReader.readLine ()) != null)
// Si le premier caractère est #, c'est une remarque
if ( to.length () > 0
&& to.charAt (0) != '#')
try
{
// Création d'un message
Message message = new MimeMessage (session);
// Modification de l'expéditeur
message.setFrom (new InternetAddress (from));
// Modification du destinataire
InternetAddress [] address =
{new InternetAddress (to)};
message.setRecipients (Message.RecipientType.TO, address);
// Modification du sujet
message.setSubject (subject);
// Modification du contenu en texte brut
message.setContent (content, "text/html");
// Envoi du message
Transport.send (message);
System.out.println ("Message envoye a " + to);
}
catch (MessagingException mex)
{
mex.printStackTrace ();
}
}
catch (IOException ex)
{
System.out.println ("Probleme d'acces a " + mailFile + " ou " + destFile);
}
}
}
/*****************************************************************************************
EXECUTION:
Une fois compilé, il vous faut préparer le fichier du message à envoyer
et le fichier regroupant tous les destinataires.
Appelons-les par exemple test.html et dest.txt :
test.html
dest.txt
Naissance du site aaaa
Bonjour,
J'ai l'honneur de vous annoncer la naissance
d'un nouveau site consacre a ...
A bientot sur http://...
Moi
#Destinataires professionnels
x@xx.com
y@yy.com
#Adresses perso
monami@zz.com
La première ligne de ce fichier est utilisée comme sujet du message.
Le reste du fichier représente le corps du message.
Chaque ligne doit contenir un destinataire.
Si la ligne commence par un caractère #, elle est ignorée, ce qui permet d'ajouter
des commentaires.
Maintenant, vous êtes prêt à utiliser ce programme qui prend 4 paramètres :
* L'Email utilisé pour indiquer l'expéditeur, par exemple moi@aaaa.com.
* Votre serveur de mail, ou mailhost.
( Si vous ne le connaissez pas, cherchez dans les options de votre navigateur
le serveur de courrier sortant ou serveur SMTP.)
* Le nom du fichier contenant le message à envoyer.
* Le nom du fichier regroupant tous les destinataires.
Par exemple, sous Windows, vous exécuterez le programme
avec la ligne de commande suivante :
C:\java -classpath .;C:\jdk1.3.1_06\javamail-1.3\mail.ja
r;C:\jdk1.3.1_06\jaf-1.0.2\activation.jar MailingList expediteur@XXX.com SMTP.serveur test.html dest.txt
*****************************************************************************************/