2013-03-08 3 views
1

J'ai essayé d'implémenter le code de servlet suivant pour implémenter le service de messagerie, mais je reçois constamment des erreurs avec ce code. pls un coup d'oeil ...mise en œuvre du service de messagerie dans mon code

import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Properties; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.util.Properties; 
import javax.mail.*; 
import javax.mail.internet.*; 
import javax.servlet.RequestDispatcher; 

public class email extends HttpServlet { 

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    String to="[email protected]"; //emailID at which the mail is send 

    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 
    Session session=null; 

    try{ 
     Properties props = new Properties(); 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.smtp.socketFactory.port", "465"); 
     props.put("mail.smtp.socketFactory.class", 
        "javax.net.ssl.SSLSocketFactory"); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.port", "465"); 

     session = Session.getDefaultInstance(props, 
     new javax.mail.Authenticator() { 
     protected PasswordAuthentication getPasswordAuthentication() { 
     return new PasswordAuthentication("[email protected]","password");//change accordingly 
     } 
     });} 
     catch(Exception e) 
     {out.println("error234");} 
     try { 
     MimeMessage message = new MimeMessage(session); 
     message.setFrom(new InternetAddress("[email protected]"));//change accordingly 
     message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); 
     message.setSubject("Pls find the message inside"); 
     String dd = "hey"; 
     message.setText(dd); 

     //send message 
     Transport.send(message); 
     out.println("success"); 
      } 
     catch(Exception e) 
      {out.println("error");} 
     finally {    
       out.close(); 
      } 
     } 

la sortie que je reçois est: i.e. d'erreur du dernier bloc catch pls donner quelques suggestions concernant ce dès que possible.

+0

Pouvez-vous poster la Stacktrace? –

+0

Pour commencer, au lieu de 'out.println (" erreur ");' pourquoi ne publiez-vous pas la pile-trace? – blank

+0

@PeterRader la trace de la pile est la suivante: 'javax.mail.MessagingException: Impossible de se connecter à l'hôte SMTP: smtp.gmail.com, port: 465; l'exception imbriquée est: java.net.ConnectException: la connexion a expiré: connectez-vous à com.sun.mail.smtp.SMTPTransport.openServer (SMTPTransport.java:1972) sur com.sun.mail.smtp.SMTPTransport.protocolConnect (SMTPTransport.java : 642) à javax.mail.Service.connect (Service.java:317) à javax.mail.Service.connect (Service.java:176) ' – aman

Répondre

1

Voici les propriétés qui ont travaillé pour moi:

mail.transport.protocol = smtp

mail.smtp.host = smtp.gmail.com

mail.smtp.auth = true

mail.smtp.starttls.enable = true

mail.smtp.port = 587

+0

toujours pas en mesure d'envoyer le courrier par ces propriétés ..... i utilisé 2 jours plus tôt et il fonctionnait bien ..... dnt savoir ce qui est arrivé maintenant ..... pourriez-vous m'envoyer ur ** web.xml ** fichier de votre projet dans lequel vous l'avez mis en œuvre. – aman

+0

pourrait me pls m'envoyer le ** web.xml ** fichier de votre projet où vous avez mis en œuvre ces paramètres et ce ** fichier de servlet ** aussi où vous avez écrit ce code ...... Pls :) – aman

+0

@ Je ne peux pas vous envoyer ce code, car ce n'est pas open source. J'ai comparé votre code au mien, et ils ont l'air très similaires. Outre la différence dans les propriétés, la seule différence que j'ai trouvée est que vous utilisez message.setText et j'utilise message.setContent. Je ne suis pas sûr de ce que vous attendez de trouver dans le fichier web.xml. – Eran