Bonsoir à vous tous
je cherche à réaliser un programme pour envoyer des emails , en réalisant le programme suivant j'ai des exceptions que je n'arrive pas à les résoudre :
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
 
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.StringTokenizer;
public class MailTo {
 
 
	public MailTo(){
 
	}
 
 
	public static boolean sendMail(Socket sock,
			String localHost,String destinataire,String from,String subject,String message)throws IOException{
 
		//connexion à la socket passée par paramètre 
		PrintWriter out = new PrintWriter(sock.getOutputStream());
		BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream())) ;
 
 
		//on recoi la ligne qui nous dit que l'on est connecté
				receive();	
 
 
		//on envoie la ligne qui indique de qui elle provient 
 
 
 
				send("HELO"+localHost);
				//on nous dit qu'elle est bien reçu
				 receive();
 
	//on envoie l'adresse de l'expediteur 
				 send("MAIL FROM : <"+from+">");
 
 
	//on nous dit que message reçu
 
	//on envoie l'adresse du destinataire
 
 
				send("RSPCT TP : <"+ destinataire +">");
 
 
	//on recupère la reponse 
				 receive();
 
			//on envoie le corps
 
 
				 send("DATA");
				 //on verifie que le serveur soit pret
				 receive();
 
				//on envoie plusieurs balises utiles 
				 send("subject: " + subject);
				 send("Date: " + new Date());
				 send("Reply-To:" + from);
				 send("To: " + destinataire);
				//on envoie chaque ligne separament en utilisant /n
 
 
 
				StringTokenizer tokenizer = new StringTokenizer(message,"\n");
				//on utilise une boucle qui indique que tant qu'il y'a des lignes à envoyer
				while (tokenizer.hasMoreTokens())
					send(tokenizer.nextToken());
				//pour finir l'envoie d'un il faut envoyer sur une ligne un seul point 
				send(".");
 
				//on verifie que le mail a été accépté
				 receive();
				 //on quitte
				 send("quit");
				 //on nous dit que ca s'est quitté
				 receive();
				// on ferme les flux 
				 in.close();
				 out.close();
				 sock.close();
				 return true;
 
 
 
 
 
 
	}
 
	//methode qui reçoit les infos du serveur 
	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[] args) throws UnknownHostException, IOException {
			// TODO Auto-generated method stub
			try{
			Socket sock= new Socket("smtp.live.com", 25);
			MailTo.sendMail(sock, "localHost", "menoulette@hotmail.com", "menoulette@hotmail.com", "salut", "salut ça marche");
			}catch(Exception e){
			e.printStackTrace();
			}
 
 
			}
 
 
 
 
 
 
}
les exceptions sont les suivantes

java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at MailTo.main(MailTo.java:120)

Merci de m'éclaircir