import javax.mail.;
import javax.mail.internet.;
import javax.mail.internet.MimeMessage;
import java.util.*;
public class EmailGmail {
private void envoyerGMail(String pseudo, String motDePasse, String expediteur, String destinataires[], String sujet, String message) throws MessagingException
{
//Configurer serveur smtp
Properties props=new Properties();
props.put("mail.smtp.host", "smtp.gmail.com"); //smtp.mail.yahoo.fr pour Yahoo
props.put("mail.smtp.ssl.trust", "smtp.gmail.com"); //smtp.mail.yahoo.fr pour Yahoo
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
//Envoyer pseudo et mot de passe
Session session=Session.getInstance(props, new Authenticator()
{
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(pseudo, motDePasse);
}
});
//Créer message
Message msg=new MimeMessage(session);
//Configurer expéditeur
InternetAddress adrExpediteur=new InternetAddress(expediteur);
msg.setFrom(adrExpediteur);
//Configurer destinataires
InternetAddress[] adrDestinataires=new InternetAddress[destinataires.length];
for (int i=0;i;<destinataires.length;i++)
{
adrDestinataires[i]=new InternetAddress(destinataires[i]);
}
msg.setRecipients(Message.RecipientType.TO, adrDestinataires);
//Sujet et corps du message
msg.setSubject(sujet);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
//Utilisation
String pseudo="monPseudo";
String motDePasse="monMotDePasse";
String expediteur="moPseudo@gmail.com";
String destinataires[]={"moPseudo@xxxx.xxx"};
String sujet="Pas de sujet";
String message="Salut ! Mail envoyé par Java !";
try
{
envoyerGMail(pseudo, motDePasse, expediteur, destinataires, sujet, message);
affiche("Mail envoyé !");
}
catch(MessagingException ex)
{
affiche(String.valueOf(ex));
}
}
Les erreurs:
Description Resource Path Location Type
The method affiche(String) is undefined for the type EmailGmail EmailGmail.java /EmailGmail/src/EmailGmail line 59 Java Problem
The method affiche(String) is undefined for the type EmailGmail EmailGmail.java /EmailGmail/src/EmailGmail line 63 Java Problem
The method setContent(String, String) is undefined for the type Message EmailGmail.java /EmailGmail/src/EmailGmail line 46 Java Problem
The method setFrom(InternetAddress) is undefined for the type Message EmailGmail.java /EmailGmail/src/EmailGmail line 34 Java Problem
The method setSubject(String) is undefined for the type Message EmailGmail.java /EmailGmail/src/EmailGmail line 45 Java Problem
Description Resource Path Location Type
No exception of type MessagingException can be thrown; an exception type must be a subclass of Throwable EmailGmail.java /EmailGmail/src/EmailGmail line 10 Java Problem
RecipientType cannot be resolved or is not a field EmailGmail.java /EmailGmail/src/EmailGmail line 42 Java Problem
Veuillez m'aider s'ils vous plaît.
Merci d'avance.
Bonjour,
le nom complet de la classe MessagingException est javax.mail.MessagingException
de ce fait, pour l'importer tu peux faire
import javax.mail.MessagingException;
sinon tu importes toutes les classes de javax.mail
import javax.mail.*;
c'est sans doute ce qu'est censé faire ta première ligne mais il manque l'étoile !!!
Pour afficher le message d'une Exception il faut utiliser getMessage()
catch(MessagingException ex)
{
// System.out.println(ex.getMessage());
affiche( ex.getMessage() );
}
Bonjour,
Merci pour ta réponse.
j'ai ajouté ce tu m'a dit , cependant j'ai les mêmes erreurs.
Tu as des erreurs car tu utilises la classe Message au lieu de MimeMessage
remplaces
//Créer message
Message msg=new MimeMessage(session);
par
//Créer message
MimeMessage msg=new MimeMessage(session);
la classe MimeMessage hérite de Message mais possède des méthodes en plus
Voici les imports qui fonctionnent chez moi
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.Session;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import java.util.*;
et pour les jar nécessaires
mailapi.jar et smtp.jar suffisent normalement