2009-10-03 25 views
8

Làm cách nào để lưu trữ thư mà tôi đã viết qua javamail vào bảng MySQL? Tôi đã cấu hình james tập tin cấu hình máy chủ để kết nối với MySQL server (với nguồn dữ liệu tên phần tử maildb), và tôi đã thay đổi các yếu tố <inboxRepository> trong James tập tin cấu hình máy chủ đểLưu trữ dữ liệu trong bảng MySql thông qua Javamail không thành công

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

Nhưng tôi vẫn không thể đọc các tin nhắn từ cột hộp thư đến của bảng spammer bảng trong cơ sở dữ liệu thư trong MySql.

Đây là lớp JavaMail tôi:

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(); 
     } 
    } 
    } 
} 

Tôi đang làm gì sai ở đây, và làm thế nào tôi có thể đọc được thông báo từ bảng spammer trong MySQL?

+0

Khi bạn thực hiện ứng dụng của mình - ứng dụng đã gửi có được lưu lại trong cơ sở dữ liệu không? Tôi thu thập từ bài viết của bạn mà bạn muốn một bản sao của tin nhắn đã gửi vẫn tồn tại trong bảng spammer, nhưng tôi không thể nhìn thấy bất kỳ mã kiên trì nào với ví dụ đang chạy của bạn - điều này có nghĩa là james có tự động tồn tại không? – Bitmap

Trả lời

1

Có lẽ bạn sử dụng URL sai lầm khi cơ sở dữ liệu: destinationUrl = "db: // maildb/spammer /" Tôi đề nghị thay đổi destinationUrl = "mysql: // maildb/spammer /" nếu đích là cơ sở dữ liệu mysql của khóa học.

Các vấn đề liên quan