使用spring发邮件,批量的

本文介绍如何使用Spring框架实现批量邮件的发送,包括HTML格式邮件及附件的处理,并演示了如何将多个文件作为附件添加到邮件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

index.jsp  选择要指上传的文件夹中任一文件
<form method="post"  action="send_do.jsp" name="send">
   选目录批量上传:  <input type="file" name="filesb" value="select">
   <input type="submit"value="up pic">
   </form>

send_do.jsp
   <%
    String filesb=new String(request.getParameter("filesb").getBytes("ISO-8859-1"),"gb2312");;
       Test test=new Test();
       test.sendAllPic(filesb);
    %>

Test.java
package test;
import java.io.File;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
public class Test {
 // 要解决的问题,图片要在classes文件夹中才行?
 // 1。把文件拷到classes文件夹中去
 // 2。ClassPathResource(如果是绝对路径呢),使用FileSystemResource就可以了。
 public static void sendAllPic(String filesb) {
  String filesbs = filesb.replace("//", "/"); // filesbs+sub[i]
  int lastseparator = filesbs.lastIndexOf("/");
  String dirfilesb = filesbs.substring(0, lastseparator);
  File dir = new File(dirfilesb);
  String sub[] = dir.list(); // sub[]子项,这里是图片
  
  ApplicationContext context = new ClassPathXmlApplicationContext

("applicationContext.xml");
  JavaMailSender mailSender = (JavaMailSender) context.getBean("mailSender");
  MimeMessage mime = mailSender.createMimeMessage();
  MimeMessageHelper helper;
  try {
   helper = new MimeMessageHelper(mime, true, "UTF-8");
   helper.setFrom("facepp911@gmail.com");
   helper.setTo("35482651@qq.com");
   helper.setSubject("Test mime mail");
   // 设定为HTML格式:
   helper.setText("<html><body>照片:<br>"
     + "<a href='http://www.163.com' target='_blank'>"
     + "<img src='cid:logo'></a></body></html>",
     true);

   helper.addInline("logo", new FileSystemResource(dirfilesb+"/"+sub[0]));//添加一个嵌入的图片,

   for (int i = 0; i < sub.length; i++) {

if (new File(dirfilesb + "/" + sub[i]).isFile())//是文件,而不是目录
    {helper.addAttachment(sub[i], new FileSystemResource(dirfilesb+"/"+sub[i]));// 添加一个普通的附件
   }

  }
  } catch (MessagingException e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
  // 发送:
  mailSender.send(mime);
 }
}

spring发邮件的基础可参考使用spring发邮件,批量的

index.jsp  选择要指上传的文件夹中任一文件
<form method="post"  action="send_do.jsp" name="send">
   选目录批量上传:  <input type="file" name="filesb" value="select">
   <input type="submit"value="up pic">
   </form>

send_do.jsp
   <%
    String filesb=new String(request.getParameter("filesb").getBytes("ISO-8859-1"),"gb2312");;
       Test test=new Test();
       test.sendAllPic(filesb);
    %>

Test.java
package test;
import java.io.File;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
public class Test {
 // 要解决的问题,图片要在classes文件夹中才行?
 // 1。把文件拷到classes文件夹中去
 // 2。ClassPathResource(如果是绝对路径呢),使用FileSystemResource就可以了。
 public static void sendAllPic(String filesb) {
  String filesbs = filesb.replace("//", "/"); // filesbs+sub[i]
  int lastseparator = filesbs.lastIndexOf("/");
  String dirfilesb = filesbs.substring(0, lastseparator);
  File dir = new File(dirfilesb);
  String sub[] = dir.list(); // sub[]子项,这里是图片
  
  ApplicationContext context = new ClassPathXmlApplicationContext

("applicationContext.xml");
  JavaMailSender mailSender = (JavaMailSender) context.getBean("mailSender");
  MimeMessage mime = mailSender.createMimeMessage();
  MimeMessageHelper helper;
  try {
   helper = new MimeMessageHelper(mime, true, "UTF-8");
   helper.setFrom("facepp911@gmail.com");
   helper.setTo("35482651@qq.com");
   helper.setSubject("Test mime mail");
   // 设定为HTML格式:
   helper.setText("<html><body>照片:<br>"
     + "<a href='http://www.163.com'

target='_blank'>"
     + "<img src='cid:logo'></a></body></html>", //

附件要嵌入到HTML中显示,则在IMG标签中用"cid:XXX"标记。对应的附件通过addInline()方法添加.
     true);
   // helper.addInline("logo", new
   // ClassPathResource(sub[0]));//添加一个嵌入的图片,图片在classes

文件夹中
   helper.addInline("logo", new FileSystemResource(dirfilesb+"/"+sub

[0]));// 添加一个嵌入的图片,图片在classes文件夹中

   for (int i = 0; i < sub.length; i++) {
    helper.addAttachment(sub[i], new FileSystemResource

(dirfilesb+"/"+sub[i]));// 添加一个普通的附件
   }
  } catch (MessagingException e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
  // 发送:
  mailSender.send(mime);
 }
}

spring发邮件的基础可参考
使用spring发邮件,批量的

index.jsp  选择要指上传的文件夹中任一文件
<form method="post"  action="send_do.jsp" name="send">
   选目录批量上传:  <input type="file" name="filesb" value="select">
   <input type="submit"value="up pic">
   </form>

send_do.jsp
   <%
    String filesb=new String(request.getParameter("filesb").getBytes("ISO-8859-1"),"gb2312");;
       Test test=new Test();
       test.sendAllPic(filesb);
    %>

Test.java
package test;
import java.io.File;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
public class Test {
 // 要解决的问题,图片要在classes文件夹中才行?
 // 1。把文件拷到classes文件夹中去
 // 2。ClassPathResource(如果是绝对路径呢),使用FileSystemResource就可以了。
 public static void sendAllPic(String filesb) {
  String filesbs = filesb.replace("//", "/"); // filesbs+sub[i]
  int lastseparator = filesbs.lastIndexOf("/");
  String dirfilesb = filesbs.substring(0, lastseparator);
  File dir = new File(dirfilesb);
  String sub[] = dir.list(); // sub[]子项,这里是图片
  
  ApplicationContext context = new ClassPathXmlApplicationContext

("applicationContext.xml");
  JavaMailSender mailSender = (JavaMailSender) context.getBean("mailSender");
  MimeMessage mime = mailSender.createMimeMessage();
  MimeMessageHelper helper;
  try {
   helper = new MimeMessageHelper(mime, true, "UTF-8");
   helper.setFrom("facepp911@gmail.com");
   helper.setTo("35482651@qq.com");
   helper.setSubject("Test mime mail");
   // 设定为HTML格式:
   helper.setText("<html><body>照片:<br>"
     + "<a href='http://www.163.com'

target='_blank'>"
     + "<img src='cid:logo'></a></body></html>", //

附件要嵌入到HTML中显示,则在IMG标签中用"cid:XXX"标记。对应的附件通过addInline()方法添加.
     true);
   // helper.addInline("logo", new
   // ClassPathResource(sub[0]));//添加一个嵌入的图片,图片在classes

文件夹中
   helper.addInline("logo", new FileSystemResource(dirfilesb+"/"+sub

[0]));// 添加一个嵌入的图片,图片在classes文件夹中

   for (int i = 0; i < sub.length; i++) {
    helper.addAttachment(sub[i], new FileSystemResource

(dirfilesb+"/"+sub[i]));// 添加一个普通的附件
   }
  } catch (MessagingException e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
  // 发送:
  mailSender.send(mime);
 }
}

 

附件:csdn空间4/springMail2批量发照片.rar

spring发邮件的基础可参考
http://blog.youkuaiyun.com/facepp/archive/2008/09/22/2963743.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值