Bonjour,

Voila mon probl�me, j'ai une classe Mail tr�s simple avec une m�thode pour envoyer un mail (envoiMail) :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import java.util.Properties;
 
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
 
public class Mail {
    public static void envoiMail(String from, String to, String cc, String sujet, String texte, PieceJointe pj, String signature) {
        // Création de l'objet Properties qui contient tous les paramètres d'initialisation nécessaires.
        Properties props = new Properties();
        props.put("mail.smtp.host", "chrmt-smtp01");
        Session session = Session.getInstance(props, null);
 
        try {
            // Création de l'objet message
            MimeMessage msg = new MimeMessage(session);
            msg.setSubject(sujet);                           // Ajout du sujet
            msg.setFrom(from);                               // Ajout du from ==> Erreur
            msg.setRecipients(Message.RecipientType.TO, to); // Ajout du destinataire
            msg.setRecipients(Message.RecipientType.CC, cc); // Ajout du destinataire en copie
 
            // Ajout du contenu au message
            msg.setContent(createMultipart(texte, pj, signature));
 
            Transport.send(msg);
        } catch (MessagingException mex) {
            System.out.println("send failed, exception: " + mex);
        }
    }
 
    public static MimeMultipart createMultipart(String texte, PieceJointe pj, String signature) throws MessagingException {
        MimeMultipart mp = new MimeMultipart();
 
        // 1ere partie du message : Le texte
        MimeBodyPart mbp1 = new MimeBodyPart();
        mbp1.setText(texte, "ISO-8859-1", "html");
        mp.addBodyPart(mbp1);
 
        // 2ème partie du message : La pièce jointe
        if(pj != null) {
            MimeBodyPart mbp2 = new MimeBodyPart();
            DataSource source = new FileDataSource(pj.getFile());
            mbp2.setDataHandler(new DataHandler(source));
            mbp2.setFileName(pj.getName());
            mp.addBodyPart(mbp2);
        }
 
        // 3ème partie du message : La signature
        MimeBodyPart mbp3 = new MimeBodyPart();
        mbp3.setText(signature, "ISO-8859-1", "html");
        mp.addBodyPart(mbp3);
 
        return mp;
    }
}
lorsque je test cette m�thode directement dans eclipse, � partir d'une fonction main, cela fonctionne parfaitement :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.io.File;
import java.io.IOException;
 
import package_mail.Mail;
 
import com.google.common.base.Charsets;
 
public class testMainClass {    
    public static void main(String[] args) throws IOException {
        String signature = com.google.common.io.Files.toString(new File("code-signature.html"), Charsets.UTF_8);
 
        String texte = "texte de test test";
        String sujet = "ALERTE";
        String to    = "[email protected]";
        String cc    = "[email protected]";
 
        Mail.envoiMail("[email protected]", to, cc, sujet, texte, null, signature);
    }
}
maintenant, � partir d'un logiciel, je lui demande d'appeler cette m�thode et j'obtiens cette erreur :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
java.lang.NoSuchMethodError: javax.mail.internet.MimeMessage.setFrom(Ljava/lang/String;)
l'erreur est donc sur la ligne :


maintenant, si je supprime cette ligne, le mail est bien envoy� mais avec du code html pour la signature :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
mbp3.setText(signature, "ISO-8859-1", "html");

Si quelqu'un � une explication ou une id�e pour m'aider.
Merci.