Envoyer un mail en java
kanadianDri3
Messages postés
95
Statut
Membre
-
Erkan -
Erkan -
Bonjour à tous,
Pour un projet réaliser en java je dois envoyer des mails automatiquement selon certain types d'événements.
J'ai trouver ceci sur le net et ca marche plus ou moins bien :
Le probleme c'est que tout s'affiche dans la console. J'aimerais que je puisse consulter le mail dans ma boite mail.
Est-ce que ca vient de mon serveur SMTP ? Et si oui comment je dois le configurer ? J'ai trouver 'Free SMTP Server' sur le net. Un autre serai plus utile ?
Mon mini serveur ce trouve en local pour l'instant (mais je ne pense pas que ce soit ca le probleme)
AIDEZ MOI SVP !!! J'suis un peu perdu dans tout ça !!!
MERCI BEAUCOUP !
public MailIo() {
}
public static boolean sendMail(Socket sock, String localHost,
String Destinataire, String from, String subject, String message)
throws IOException {
//connection a la socket passe par param
out = new PrintWriter(sock.getOutputStream());
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
//on recoi la ligne qui nous dit que l'on est connecté
receive();
//on envoi la premiere ligne qui indique de qui elle provien
send("HELO " + localHost);
//on nous dit qu'elle a bien etait recu
receive();
//on envoi l'adresse de l'expediteur
send("MAIL FROM: <" + from + ">");
//on nous dit que ca c'est bien passe
receive();
//on envoi l'adresse du destinataire
send("RCPT TO: <" + Destinataire + ">");
//on recupere la reponse
receive();
//on passe au chose serieuse pour commencer l'envoi du corps
send("DATA");
//on verifie que le serveur soit pret
receive();
//on envoi plusieur balise utile
send("Subject: " + subject);
send("Date: " + new Date());
send("Reply-To:" + from);
send("To: " + Destinataire);
//on envoi cahque ligne separement en utilisant \n comme delimitateur
StringTokenizer tokenizer = new StringTokenizer(message, "\n");
//la ligne ci dessous se traduit par : tant qu'il y a encore des ligne
while (tokenizer.hasMoreTokens())
send(tokenizer.nextToken());
//pour finir l'envoi d'un mail il faut envoi sur une ligne un seul point
send(".");
//on verifie que le mail a etait accepte
receive();
//on quitte
send("QUIT");
//on nous dit que ca a bien quitter
receive();
//on ferme les flux
in.close();
out.close();
sock.close();
return true;
}
//methode qui recoit les information du servveur
private static void receive() throws IOException {
String line = in.readLine();
if (line != null) {
System.out.println(line);
System.out.println("\n");
}
}
//methode qui envoi des infos au serveur
private static void send(String s) {
System.out.print(s);
System.out.print("\r\n");
System.out.flush();
out.print(s);
out.print("\r\n");
out.flush();
}
private static BufferedReader in;
private static PrintWriter out;
public static void main(String[] arg)
{
Socket sock;
try {
sock = new Socket("xxx.xxx.xxx.xxx",25);
MailIo.sendMail(sock,"david","test1@toto.fr","test2@toto2.fr","test","ca marche la? cest cool.");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
voilà ce qui s'affiche dans la console :
220 localhost
HELO david
250 Hello localhost
MAIL FROM: <test2@toto2.fr>
250 test2@toto2.fr Address Okay
RCPT TO: <test1@toto.fr>
250 test1@toto.fr Address Okay
DATA
354 Please start mail input.
Subject: test
Date: Sun Feb 08 14:28:19 CET 2009
Reply-To:test2@toto2.fr
To: test1@toto.fr
ca marche la? cest cool.
.
250 Mail queued for delivery.
QUIT
221 Closing connection. Good bye.
Pour un projet réaliser en java je dois envoyer des mails automatiquement selon certain types d'événements.
J'ai trouver ceci sur le net et ca marche plus ou moins bien :
Le probleme c'est que tout s'affiche dans la console. J'aimerais que je puisse consulter le mail dans ma boite mail.
Est-ce que ca vient de mon serveur SMTP ? Et si oui comment je dois le configurer ? J'ai trouver 'Free SMTP Server' sur le net. Un autre serai plus utile ?
Mon mini serveur ce trouve en local pour l'instant (mais je ne pense pas que ce soit ca le probleme)
AIDEZ MOI SVP !!! J'suis un peu perdu dans tout ça !!!
MERCI BEAUCOUP !
public MailIo() {
}
public static boolean sendMail(Socket sock, String localHost,
String Destinataire, String from, String subject, String message)
throws IOException {
//connection a la socket passe par param
out = new PrintWriter(sock.getOutputStream());
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
//on recoi la ligne qui nous dit que l'on est connecté
receive();
//on envoi la premiere ligne qui indique de qui elle provien
send("HELO " + localHost);
//on nous dit qu'elle a bien etait recu
receive();
//on envoi l'adresse de l'expediteur
send("MAIL FROM: <" + from + ">");
//on nous dit que ca c'est bien passe
receive();
//on envoi l'adresse du destinataire
send("RCPT TO: <" + Destinataire + ">");
//on recupere la reponse
receive();
//on passe au chose serieuse pour commencer l'envoi du corps
send("DATA");
//on verifie que le serveur soit pret
receive();
//on envoi plusieur balise utile
send("Subject: " + subject);
send("Date: " + new Date());
send("Reply-To:" + from);
send("To: " + Destinataire);
//on envoi cahque ligne separement en utilisant \n comme delimitateur
StringTokenizer tokenizer = new StringTokenizer(message, "\n");
//la ligne ci dessous se traduit par : tant qu'il y a encore des ligne
while (tokenizer.hasMoreTokens())
send(tokenizer.nextToken());
//pour finir l'envoi d'un mail il faut envoi sur une ligne un seul point
send(".");
//on verifie que le mail a etait accepte
receive();
//on quitte
send("QUIT");
//on nous dit que ca a bien quitter
receive();
//on ferme les flux
in.close();
out.close();
sock.close();
return true;
}
//methode qui recoit les information du servveur
private static void receive() throws IOException {
String line = in.readLine();
if (line != null) {
System.out.println(line);
System.out.println("\n");
}
}
//methode qui envoi des infos au serveur
private static void send(String s) {
System.out.print(s);
System.out.print("\r\n");
System.out.flush();
out.print(s);
out.print("\r\n");
out.flush();
}
private static BufferedReader in;
private static PrintWriter out;
public static void main(String[] arg)
{
Socket sock;
try {
sock = new Socket("xxx.xxx.xxx.xxx",25);
MailIo.sendMail(sock,"david","test1@toto.fr","test2@toto2.fr","test","ca marche la? cest cool.");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
voilà ce qui s'affiche dans la console :
220 localhost
HELO david
250 Hello localhost
MAIL FROM: <test2@toto2.fr>
250 test2@toto2.fr Address Okay
RCPT TO: <test1@toto.fr>
250 test1@toto.fr Address Okay
DATA
354 Please start mail input.
Subject: test
Date: Sun Feb 08 14:28:19 CET 2009
Reply-To:test2@toto2.fr
To: test1@toto.fr
ca marche la? cest cool.
.
250 Mail queued for delivery.
QUIT
221 Closing connection. Good bye.
A voir également:
- Envoyer un mail en java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Gmail envoyer un mail - Guide
- Envoyer un mail en cci - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo