通过Javamail在MySql表中存储数据失败
如何将通过javamail编写的消息存储到MySQL表中? 我已经将james服务器配置文件配置为连接到MySQL服务器(数据源元素名为maildb),并且我将james服务器配置文件中的通过Javamail在MySql表中存储数据失败,java,mysql,jakarta-mail,james,Java,Mysql,Jakarta Mail,James,如何将通过javamail编写的消息存储到MySQL表中? 我已经将james服务器配置文件配置为连接到MySQL服务器(数据源元素名为maildb),并且我将james服务器配置文件中的元素更改为 <inboxRepository> <repository destinationURL="db://maildb/spammer/" type="MAIL"/> </inboxRepository> 但我仍然无法读取MySql邮件数
元素更改为
<inboxRepository>
<repository destinationURL="db://maildb/spammer/"
type="MAIL"/>
</inboxRepository>
但我仍然无法读取MySql邮件数据库中表垃圾邮件发送者表的收件箱列中的消息
下面是我的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 = "red@localhost";
String from = "blue@localhost";
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();
}
}
}
}
import java.io.IOException;
导入java.io.PrintWriter;
导入java.util.Properties;
导入javax.mail.*;
导入javax.mail.internet.*;
公营邮件{
公共静态void main(字符串[]参数){
字符串to=”red@localhost";
字符串from=”blue@localhost";
字符串subject=“jdk”;
String body=“下风”;
if((from!=null)&&(to!=null)
&&(subject!=null)和(body!=null))
//我们有邮件要寄
{
试一试{
Properties props=新属性();
道具放置(“mail.host”,“127.0.0.1”);
props.put(“mail.smtp.auth”,“true”);
会话=
getInstance(props,newjavax.mail.Authenticator(){
受保护的密码身份验证getPasswordAuthentication(){
返回新密码验证(“蓝色”、“蓝色”);
}
});
Message Message=新的mimessage(会话);
message.setFrom(新的InternetAddress(from));
地址[]add={new InternetAddress(to)};
message.setRecipients(message.RecipientType.TO,add);
message.setSubject(主题);
message.setContent(正文,“文本/普通”);
message.setText(正文);
传输。发送(消息);
System.out.println
(“谢谢。您发送至“+至+”的消息已成功发送。”);
}捕获(可丢弃的t){
t、 printStackTrace();
}
}
}
}
我在这里做错了什么,我如何读取MySQL中垃圾邮件发送者表中的消息?可能您使用了错误的数据库URL: destinationURL=“db://maildb/spammer/” 我建议更改为 destinationURL=”mysql://maildb/spammer/"
如果目标当然是mysql数据库。当您执行应用程序时,发送的应用程序是否会持久保存在数据库中?我从您的帖子中得知,您希望在垃圾邮件发送者表中保留已发送邮件的副本,但我看不到您运行的示例中的任何持久性代码-这是否意味着james会自动执行持久性操作?