Javamail envoi d'un mail: format html??

Signaler
Messages postés
15
Date d'inscription
mercredi 15 janvier 2003
Statut
Membre
Dernière intervention
19 février 2003
-
Messages postés
94
Date d'inscription
dimanche 30 avril 2006
Statut
Membre
Dernière intervention
21 juin 2010
-
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

Messages postés
1
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
30 juin 2003

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
Messages postés
22
Date d'inscription
lundi 1 décembre 2003
Statut
Membre
Dernière intervention
7 octobre 2007

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
Messages postés
12
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
4 août 2004

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
Messages postés
1
Date d'inscription
samedi 19 juillet 2003
Statut
Membre
Dernière intervention
16 avril 2005

salut
Messages postés
94
Date d'inscription
dimanche 30 avril 2006
Statut
Membre
Dernière intervention
21 juin 2010

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.