求大神指导写一个定时自动发送foxmail邮件的小工程! 求大神指导写一个定时自动发送foxmail邮件的小工程!数据库用oracle,用jdbc连接!需要实现的功能是:每周一、三早上8点半实时从数据库中查找一批数据将其生成一个excle文件并将此excle文件作为邮件的附件发送给指定的人! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,定时任务和mail的使用,有现成的。 /** * 以HTML格式发送邮件 * @param mailInfo 待发送的邮件信息 */ public static boolean sendHtmlMail(MailSenderInfo mailInfo){ // 判断是否需要身份认证 MyAuthenticator authenticator = null; Properties pro = mailInfo.getProperties(); //如果需要身份认证,则创建一个密码验证器 if (mailInfo.isValidate()) { authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); } // 根据邮件会话属性和密码验证器构造一个发送邮件的session Session sendMailSession ; if(authenticator!=null){ sendMailSession = Session.getDefaultInstance(pro,authenticator); }else{ sendMailSession = Session.getDefaultInstance(pro); } try { // 根据session创建一个邮件消息 Message mailMessage = new MimeMessage(sendMailSession); // 创建邮件发送者地址 Address from = new InternetAddress(mailInfo.getFromAddress()); // 设置邮件消息的发送者 mailMessage.setFrom(from); // 创建邮件的接收者地址,并设置到邮件消息中 Address to = new InternetAddress(mailInfo.getToAddress()); // Message.RecipientType.TO属性表示接收者的类型为TO mailMessage.setRecipient(Message.RecipientType.TO,to); // 设置邮件消息的主题 mailMessage.setSubject(mailInfo.getSubject()); // 设置邮件消息发送的时间 mailMessage.setSentDate(new Date()); // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象 Multipart mainPart = new MimeMultipart(); // 创建一个包含HTML内容的MimeBodyPart BodyPart html = new MimeBodyPart(); // 设置HTML内容 html.setContent(mailInfo.getContent(), "text/html; charset=GBK"); mainPart.addBodyPart(html); if(mailInfo.getAttachFileNames()!=null && mailInfo.getAttachFileNames().length>0){ BodyPart bpart = new MimeBodyPart(); String[] filenames = mailInfo.getAttachFileNames(); for(int i=0;i<filenames.length;i++){ String filename = filenames[i]; File file = new File(filename); System.out.println(file.getName()); if(!file.exists()){ System.err.println("文件不存在!"); throw new NullPointerException(); } FileDataSource fds=new FileDataSource(filename); //得到数据源 bpart.setDataHandler(new DataHandler(fds)); bpart.setFileName(MimeUtility.encodeText(filename, "GBK",null)); mainPart.addBodyPart(bpart); } } // 将MiniMultipart对象设置为邮件内容 mailMessage.setContent(mainPart); // 发送邮件 Transport.send(mailMessage); System.out.println("以HTML格式发送邮件完毕!"); return true; } catch (MessagingException ex) { ex.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } 你说的定时器去研究quartz这个吧。 java中Timer类 我要定时跑任务,如:每天的早上8:30 怎么设置? 你这里面的MailSenderInfo 是什么?需要导jar包? quartz 定时发送邮件。网上搜搜哦 代码还是就不给了spingmail+quartz+poi就可以实现,网上多例子,多研究研究,很快就能写出来 到我的博客里看看那个javamail的发送实例吧...然后再写个timer...启动后,定时执行这个send方法就可以了... 现在小弟碰到个小问题,请教大神帮帮忙解决下,java在导出生成excel表格文件时,怎么对某个单元格加入背景颜色的操作~ spring mvc + spring data jpa 带条件的查询分页的问题 刚学SSH问个简单的问题。 时间格式转换问题 XML十万火急 windows 2003 msmq 急 急 急 【求程序】java 抽奖 hibernate CLOB长度问题 BMP中,ejbStore()是不是要显式调用的? ejb-Container启动时报出如下信息我该如何解决 structs下载 初学Struts2 遇到个小问题 ,配置方面的,求教…… 求高手帮忙 关于搜索出的网页是否是主页的判断
* 以HTML格式发送邮件
* @param mailInfo 待发送的邮件信息
*/
public static boolean sendHtmlMail(MailSenderInfo mailInfo){
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
//如果需要身份认证,则创建一个密码验证器
if (mailInfo.isValidate()) {
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession ;
if(authenticator!=null){
sendMailSession = Session.getDefaultInstance(pro,authenticator);
}else{
sendMailSession = Session.getDefaultInstance(pro);
}
try {
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getToAddress());
// Message.RecipientType.TO属性表示接收者的类型为TO
mailMessage.setRecipient(Message.RecipientType.TO,to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 设置HTML内容
html.setContent(mailInfo.getContent(), "text/html; charset=GBK");
mainPart.addBodyPart(html);
if(mailInfo.getAttachFileNames()!=null && mailInfo.getAttachFileNames().length>0){
BodyPart bpart = new MimeBodyPart();
String[] filenames = mailInfo.getAttachFileNames();
for(int i=0;i<filenames.length;i++){
String filename = filenames[i];
File file = new File(filename);
System.out.println(file.getName());
if(!file.exists()){
System.err.println("文件不存在!");
throw new NullPointerException();
}
FileDataSource fds=new FileDataSource(filename); //得到数据源
bpart.setDataHandler(new DataHandler(fds));
bpart.setFileName(MimeUtility.encodeText(filename, "GBK",null));
mainPart.addBodyPart(bpart);
}
}
// 将MiniMultipart对象设置为邮件内容
mailMessage.setContent(mainPart);
// 发送邮件
Transport.send(mailMessage);
System.out.println("以HTML格式发送邮件完毕!");
return true;
} catch (MessagingException ex) {
ex.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
} 你说的定时器去研究quartz这个吧。
spingmail+quartz+poi就可以实现,网上多例子,多研究研究,很快就能写出来
到我的博客里看看那个javamail的发送实例吧...然后再写个timer...启动后,定时执行这个send方法就可以了...