Javamail envoi d'un mail: format html??

zebulaon Messages postés 15 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 19 février 2003 - 13 févr. 2003 à 16:13
cs_papillon2000 Messages postés 94 Date d'inscription dimanche 30 avril 2006 Statut Membre Dernière intervention 21 juin 2010 - 25 juin 2006 à 13:12
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

*****************************************************************************************/

5 réponses

skynet21fr Messages postés 1 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 30 juin 2003
30 juin 2003 à 17:46
Bonjour a tous,

je cherche un code en java pour envoyer un mail avec une methode main (sans passer par un servlet ou un applet). Je developpe sous VAJ V3.5.

Pouvez-vous me donner la procedure a lancer car je suis un debutant en Java.

Merci beaucoup pour votre aide
0
hraa2 Messages postés 22 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 7 octobre 2007
15 mai 2004 à 03:12
Bonjour,
Je suis nouveau dans java et j'ai essayé de faire fonctionner ce code pour faire un envoi de mail.

une erreur me bloque : (j'utilise JBuilder)

java.lang.NoClassDefFoundError: javax/activation/DataSource

at SendMail.main(SendMail.java:48)

Exception in thread "main"

je crois en fait que je rempli mal la variable smtphost .
j'y met : mail.noos.fr

pouvez-vous m'aider ??????

Merci
0
cori2boonzsquad Messages postés 12 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 4 août 2004
4 août 2004 à 13:33
hraa2: ton probleme vient du fait que tu n'as pas implémenter activation.jar dans ta library.
c un jar du j2ee
il faut que tu l'implementes dans ton classpath de lib
j'avais eu le meme prb lol
co
0
khabbab Messages postés 1 Date d'inscription samedi 19 juillet 2003 Statut Membre Dernière intervention 16 avril 2005
16 avril 2005 à 14:21
salut
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_papillon2000 Messages postés 94 Date d'inscription dimanche 30 avril 2006 Statut Membre Dernière intervention 21 juin 2010
25 juin 2006 à 13:12
bonjour a tous, l'ai esye votre code zebulaon et je recoi un code d'erreur
(java.lang.VerifyError: (class: addres/MailingList, method: main signature: ([Ljava/lang/String;)V) Incompatible object argument for function call

Exception in thread "main" )et il m'indique que la class main est intouvable, je ne sais pas qu'il est le probleme, est ce que vous pouver regler ce probleme je n'ai vraiment besoin.
merci.
0
Rejoignez-nous