kanadianDri3
Messages postés85Date d'inscriptionmardi 18 novembre 2008StatutMembreDernière intervention12 juillet 2010
-
8 févr. 2009 à 17:58
Erkan -
7 oct. 2010 à 15:42
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.