2009-10-03 8 views
8

¿Cómo puedo almacenar los mensajes que he escrito a través de javamail en la tabla MySQL? Ya he configurado James archivo de configuración del servidor para conectarse al servidor MySQL (con fuente de datos Nombre del elemento maildb), y he cambiado el elemento <inboxRepository> en el archivo de configuración del servidor de JamesEl almacenamiento de datos en la tabla MySql a través de Javamail falló

<inboxRepository> 
    <repository destinationURL="db://maildb/spammer/" 
    type="MAIL"/>  
</inboxRepository> 

Pero todavía no soy capaz de lea los mensajes de la columna de bandejas de entrada de la tabla spammer tabla en la base de datos de correo en MySql.

Aquí es mi clase Javamail:

import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Properties; 
import javax.mail.*; 
import javax.mail.internet.*; 

public class mail{ 

    public static void main(String[] argts){ 
    String to = "[email protected]"; 
    String from = "[email protected]"; 
    String subject = "jdk"; 
    String body = "Down to wind"; 

    if ((from != null) && (to != null) 
     && (subject != null) && (body != null)) 
    // we have mail to send 
    { 
     try { 
     Properties props = new Properties(); 

     props.put("mail.host", "127.0.0.1 "); 
     props.put("mail.smtp.auth","true"); 

     Session session = 
      Session.getInstance(props, new javax.mail.Authenticator() { 

      protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication("blue", "blue"); 
      } 
     }); 
     Message message = new MimeMessage(session); 
     message.setFrom(new InternetAddress(from)); 
     Address[] add={ new InternetAddress(to) }; 
     message.setRecipients(Message.RecipientType.TO,add); 
     message.setSubject(subject); 
     message.setContent(body, "text/plain"); 
     message.setText(body); 
     Transport.send(message); 

     System.out.println 
      ("<b>Thank you. Your message to "+to+" was successfully sent.</b>"); 

     } catch (Throwable t) { 
     t.printStackTrace(); 
     } 
    } 
    } 
} 

¿qué estoy haciendo mal aquí, y cómo puedo leer el mensaje del spammer tabla en MySQL?

+0

Cuando ejecuta su aplicación, ¿la aplicación enviada se mantiene en la base de datos? De su publicación deduzco que quiere que persista una copia del mensaje enviado en la tabla de spammers, pero no puedo ver ningún código de persistencia con el ejemplo de ejecución. ¿Esto significa que james realiza la persistencia automáticamente? – Bitmap

Respuesta

1

Tal vez el uso de URL incorrecta de la base de datos: destinationURL = "db: // maildb/spammer /" propongo un cambio a destinationURL = "mysql: // maildb/spammer /" si el destino es la base de datos MySQL de curso.

Cuestiones relacionadas