Bonjour,
J'ai besoin d'implementer une page CONTACT US: il me faut récuperer un message saisi dans une page JSP puis l'envoyer à une boite email. Ca m'a pri bcp de temps est g pas encore arrivé au resultat attendu.
J'ai exécuté le code suivant plusieurs fois (pour tester l'envoi d'un email), mais j'ai rien réçu dans ma boite mail. Même qd g utilisé Telnet, ça pas marché et le serveur ne repond pas:
telnet smtp.gmail.com 25 et telnet smtp.mail.yahoo.fr 25 ne m'affichent rien. Quel est le pb?
1- Le code java que j'ai testé est le suivant:
Rq: "mail1" & "mail2" sont 2 adresses mail qui existent et ayant la forme suivante: " user1@yahoo.fr" & "user2@yahoo.fr".
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 import java.io.*; import java.net.*; public class SMTPClient { private String server, message, dest, origin; private int port; private Socket socket; public SMTPClient (String serv, int por, String org) { server = serv; port = por; origin = org; } public void createMsg(String dst, String msg) { message = msg; dest = dst; } public void sendMsg() { PrintWriter to; BufferedReader from; String str; try { socket = new Socket(InetAddress.getByName (server),port); to = new PrintWriter( new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true); from = new BufferedReader( new InputStreamReader ( socket.getInputStream())); str = from.readLine(); to.println("helo plus.bas"); str = from.readLine(); System.err.println(str); to.println("mail from: <"+origin+">"); str = from.readLine (); System.err.println(str); to.println("rcpt to: <"+dest+">"); str = from.readLine(); System.err.println(str); to.println("data"); str = from.readLine(); System.err.println(str); to.println("subject: petit mot\r\n\r\n" + message + "\r\n.\r\n"); str = from.readLine(); System.err.println(str); socket.close(); } catch ( Exception e ) {} } public static void main ( String args[] ) { SMTPClient c = new SMTPClient("SMTP SERVER", 25, "mail1"); c.createMsg("mail2","Coucou"); c.sendMsg(); } }
2- J'ai utilisé aussi Javamail et JAF, mais ça m'affiche (après l'exécution) "Connection reset" et un pb car le serveur n'a pas repondu ou le programme n'a pas pu lire la reponse du serveur. Le code est le suivant :
3- Autre question si la destination et l'expediteur ne sont pas les 2 sur le même domaine; par exp l'un a une compte sur GMAIL et l'autre sur YAHOO, comment faire dans ce cas quand on indique le serveur (server = " smtp.mail.yahoo.fr") ?
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 import javax.mail.internet.* ; import javax.mail.*; import javax.activation.*; import java.util.*; import java.io.*; import javax.mail.internet.InternetAddress; import java.util.Properties; public class SimpleSender { public void sendMail(String mailServer, String from, String to, String subject, String messageBody) throws MessagingException, AddressException { // Setup mail server Properties props = System.getProperties(); props.put("mail.smtp.host", mailServer); // Get a mail session Session session = Session.getDefaultInstance(props, null); // Define a new mail message Message message = new MimeMessage(session); message.setFrom (new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(subject); // Create a message part to represent the body text BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText(messageBody); //use a MimeMultipart as we need to handle the file attachments Multipart multipart = new MimeMultipart(); //add the message body to the mime message multipart.addBodyPart(messageBodyPart); // Put all message parts in the message message.setContent(multipart); // Send the message Transport.send(message); } protected void addAtachments(String[] attachments, Multipart multipart) throws MessagingException, AddressException { for(int i = 0; i<= attachments.length -1; i++) { String filename = attachments[i]; MimeBodyPart attachmentBodyPart = new MimeBodyPart(); //use a JAF FileDataSource as it does MIME type detection DataSource source = new FileDataSource(filename); attachmentBodyPart.setDataHandler(new DataHandler(source)); //assume that the filename you want to send is the same as the //actual file name - could alter this to remove the file path attachmentBodyPart.setFileName(filename); //add the attachment multipart.addBodyPart(attachmentBodyPart); } } public static void main(String[] args) { try { SimpleSender client = new SimpleSender(); String server = " smtp.mail.yahoo.fr"; String from = "user1@yahoo.fr"; String to = "user2@yahoo.fr"; String subject="Test"; String message="Testing javamail, pop3 and SMTP server"; client.sendMail(server,from,to,subject,message);//,filenames); } catch(Exception e) { e.printStackTrace(System.out); } } }
4- Est-ce qu'il me faut télécharger un serveur SMTP et l'installer et le configurer sur ma machine pour que ça marche?
Rq: je travaille avec windows
Merci d'avance
Partager