2012-01-19 10 views
12

me escribió un pequeño programa que envía en java de correo electrónico, tiene from, to y reply-to dirección, cuando el cliente intenta responder el mensaje, debe ser capaz de responder a la reply-to dirección. Actualmente no está funcionando, mi código es el siguiente:Java electrónico, establecer la dirección de respuesta no funciona

// File Name SendEmail.java 

import java.util.*; 
import javax.mail.*; 
import javax.mail.internet.*; 
import javax.activation.*; 

public class SendEmail 
{ 
    public static void main(String [] args) 
    { 

     // Recipient's email ID needs to be mentioned. 
     String to = "[email protected]"; 

     // Sender's email ID needs to be mentioned 
     String from = "[email protected]"; 

     // Assuming you are sending email from localhost 
     String host = "localhost"; 

     // Get system properties 
     Properties properties = System.getProperties(); 
    properties.put("mail.smtp.from", "[email protected]"); 

     // Setup mail server 
     properties.setProperty("mail.smtp.host", host); 

     // Get the default Session object. 
     Session session = Session.getDefaultInstance(properties); 

     try{ 
     // Create a default MimeMessage object. 
     MimeMessage message = new MimeMessage(session); 

     // Set From: header field of the header. 
     message.setFrom(new InternetAddress(from)); 

     // Set To: header field of the header. 
     message.addRecipient(Message.RecipientType.TO, 
            new InternetAddress(to)); 

     // Set Subject: header field 
     message.setSubject("This is the Subject Line!"); 

     // Now set the actual message 
     message.setText("New Message goes here"); 

     // Send message 
     Transport.send(message); 
     System.out.println("Sent message successfully...."); 
     }catch (MessagingException mex) { 
     mex.printStackTrace(); 
     } 
    } 
} 

Solía ​​cuentas de Gmail reales. Alguien puede ayudar..?

+1

Parece que su código no intenta establecer la dirección de respuesta. – Jolta

+0

¿Qué pasa con la configuración 'mail.smtp.from' ...? –

Respuesta

22

Message.setReplyTo()?

Tenga en cuenta que:

  • "de" no es lo mismo que "responder a"
  • según la spec, la propiedad de de-dirección es "mail.from"
  • la documentación para getDefaultInstance especifica que esto solo crea una nueva instancia si no hay una instancia predeterminada existente y las propiedades solo se utilizan al crear una nueva instancia. Además, la instancia predeterminada es un valor global y se reutilizará, así que a menos que desee la misma dirección "de" en todos sus correos electrónicos, debe crear sesiones nuevas (usando getInstance())
26

Pruebe:

MimeMessage message = new MimeMessage(session); 
message.setReplyTo(new javax.mail.Address[] 
{ 
    new javax.mail.internet.InternetAddress("[email protected]") 
}); 
Cuestiones relacionadas