2009-10-03 9 views
8

Comment puis-je stocker les messages que j'ai écrits via javamail dans la table MySQL? Je l'ai déjà configuré le fichier de configuration du serveur James pour se connecter au serveur MySQL (avec le nom de l'élément datasource maildb), et je l'ai changé l'élément <inboxRepository> dans le fichier de configuration du serveur JamesEchec du stockage des données dans la table MySql via Javamail

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

Mais je ne suis toujours pas en mesure de lire les messages de la colonne des boîtes de réception de la table de spammeur de table dans la base de données de messagerie dans MySQL.

Voilà ma classe 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(); 
     } 
    } 
    } 
} 

ce que je fais mal ici, et comment puis-je lire le message de la table de spammeur dans MySQL?

+0

Lorsque vous exécutez votre application, l'application envoyée est-elle conservée dans la base de données? Je comprends de votre message que vous voulez une copie du message envoyé persisté dans la table des spammeurs, mais je ne peux pas voir de code de persistance avec votre exemple en cours d'exécution - cela signifie-t-il que la persistance automatiquement? – Bitmap

Répondre

1

Peut-être utilisez-vous mal URL à la base de données: DestinationUrl = "db: // maildb/spammeur /" Je propose le changement de DestinationUrl = "mysql: // maildb/spammeur /" si la destination est la base de données MySQL cours.

Questions connexes