`

MailUtil

阅读更多

public class MailUtil {
 
 private static final Log log = LogFactory.getLog(MailUtil.class);  
 /**
  * 發送電子郵件(可單發,群發,密件發送,但不能加附件)
  * @param mail
  * @return
  */
 public static boolean sendSimpleMail(MailInfo mail){
  try {
   MailSender sender = getMailSender();
   SimpleMailMessage smm = getSMM(mail);
   sender.send(smm);
   log.info("發送Email成功");
   return true;
  } catch (MailException e) {
   e.printStackTrace();
   log.debug("發送Email失敗");
   return false;
  }
 }
 
 /**
  *
  * 發送複雜郵件(可單發,群發,密件發送,但不能加附件)
  * @param mail
  * @return
  */
 public static boolean sendMimeMessage(final MailInfo mail){
  try {
   JavaMailSender sender = (JavaMailSender)getMailSender();

   MimeMessagePreparator preparator = new MimeMessagePreparator(){

    public void prepare(MimeMessage msg) throws MessagingException {
    
     msg.setFrom(new InternetAddress(mail.getFrom()));
     if(mail.getTo()!= null && !mail.getTo().equals("")){
      msg.setRecipients(Message.RecipientType.TO, //單個地址
        InternetAddress.parse(mail.getTo()));
     }
     if(mail.getToArray()!= null && mail.getToArray().length>0){
      msg.setRecipients(Message.RecipientType.TO, //發送多個地址
        InternetAddress.parse(strArrayFromStr(mail.getToArray())));
     }
     if(mail.getToBccArray()!= null && mail.getToBccArray().length>0){
      msg.setRecipients(Message.RecipientType.BCC, //發送多個地址
        InternetAddress.parse(strArrayFromStr(mail.getToBccArray())));
     } 
     
     msg.setSubject(mail.getSubject());
     Multipart mp = new MimeMultipart();
     msg.setContent(mp);
     
     MimeBodyPart mbpContent = new MimeBodyPart();//增加文本內容
     if(mail.getContentType().equals(MailInfo.CONTENTTYPE_TEXT)){ //text格式郵件
      mbpContent.setText(mail.getText());
     }else{//html格式郵件
      mbpContent.setContent(mail.getText(), MailInfo.CONTEENTYPE_HTML_CONTENT);
     }     
     mp.addBodyPart(mbpContent);
     
     for (Iterator iter = mail.getFile().iterator(); iter.hasNext();) {
      String  filePath = (String ) iter.next();
      MimeBodyPart mbpFile = new MimeBodyPart();//增加附件
      FileDataSource fds = new FileDataSource(filePath);//路徑
      mbpFile.setDataHandler(new DataHandler(fds));
      try {
       mbpFile.setFileName(MimeUtility.encodeText(fds.getName()));//編碼處理
      } catch (UnsupportedEncodingException e) {
       e.printStackTrace();
      }
      mp.addBodyPart(mbpFile);
     }
     msg.setSentDate(new Date());
     
    }
   };
   
   sender.send(preparator);
   log.info("發送Email成功");
   return true;
  } catch (MailException e) {
   e.printStackTrace();
   log.debug("發送Email失敗");
   return false;
  }
 }
 
 public static String strArrayFromStr(String val[]){
  String returnVal = "";
  for (int i = 0; i < val.length; i++) {
   returnVal = (i==0 ? val[i]:returnVal+","+ val[i]);
  }
  return returnVal;
 }
 
 /**
  * 取得郵件發送
  * @return
  */
 public static MailSender getMailSender(){
  MailSender mailSender = (MailSender)SpringContextUtil.getApplicationContext().getBean("mailSender");
  return mailSender;
 }
 
 /**
  * to(單發), toArray(群發), toBccArray(密件群發),只能有一個
  * @param mail
  * @return
  */
 public static SimpleMailMessage getSMM(MailInfo mail){
  SimpleMailMessage smm = new SimpleMailMessage();
  smm.setSubject(mail.getSubject());
  smm.setText(mail.getText());
  smm.setFrom(mail.getFrom());
  if(mail.getTo()!= null && !mail.getTo().equals("")){
   smm.setTo(mail.getTo());
  }
  if(mail.getToArray()!= null && mail.getToArray().length>0){
   smm.setTo(mail.getToArray());
  }
  if(mail.getToBccArray()!= null && mail.getToBccArray().length>0){
   smm.setBcc(mail.getToBccArray());
  }  
  return smm;
 }

}

 

分享到:
评论

相关推荐

    MailUtil 邮件发送工具类

    《MailUtil邮件发送工具类详解》 在Java开发中,发送邮件是一项常见的需求,而MailUtil邮件发送工具类就是为了解决这个问题而设计的。它简化了JavaMail API的使用,使得开发者能够方便快捷地实现邮件发送功能。下面...

    PyPI 官网下载 | reahl-mailutil-4.0.4.tar.gz

    标题中的"PyPI 官网下载 | reahl-mailutil-4.0.4.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的软件包,名为`reahl-mailutil`,版本为4.0.4,且以tar.gz格式提供。PyPI是Python开发者发布和分享他们...

    MailUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...

    mailutil:在 Go 中处理电子邮件的实用程序包

    "mailutil" 包就是其中之一,它是一个专门用于在 Go 中处理电子邮件消息的实用程序。 "mailutil" 包的主要功能是帮助开发者解析、构建、读取和写入电子邮件消息。这包括了处理 MIME(多用途互联网邮件扩展)结构,...

    Java实现邮件发送及带有附件的邮件发送

    1.普通邮件的发送功能 这里的这个普通邮件的发送功能...import cn.hutool.extra.mail.MailUtil; /** * 发送邮件,仅限String类型的正文内容,不支持附件发送 */ public class SendMail { public static void sendMai

    javaMail 用三种方式实现发送附件

    javaMail 用附件路径,文件流 byte[] 或 base64 字符串 实现发送附件功能

    Java实现通过模板发送邮件示例

    MailUtil mailUtil = new MailUtil(); Map, Object&gt; model = new HashMap(); model.put("username", "张三"); model.put("verificationCode", "123456"); try { mailUtil.sendTemplatedEmail("recipient@...

    springboot + rabbitmq发送邮件实战 使用RabbitMQ实现获取网易邮箱发送消息业务

    2.编写发送邮件工具类(类名称:MailUtil) 3.编写RabbitMQ配置文件 (类名称:RabbitConfig) 4.生产者发起调用(邮件数据要入MySQL数据库,业务类名称:TestServiceImpl) 5.消费者发送邮件(类名称:...

    java 发邮件带excel附件,以流的形式发送附件,不生成excel文件

    在Java编程中,发送带有Excel附件的电子邮件是一项常见的任务,特别是在数据报告或自动化流程中。在某些场景下,我们可能希望直接以流的形式处理Excel数据,而不是先将其保存为一个实际的文件,然后再作为附件发送。...

    java发送邮件工具类

    public class MailUtil { private static final String SMTP_HOST = "smtp.example.com"; private static final int SMTP_PORT = 587; private static final String USER = "username@example.com"; private ...

    基于Spring Boot的学院资产管理系统.zip

    基于Spring Boot的学院资产管理系统 项目概述 学院资产管理系统是一个用于... 其他工具Swagger(API文档生成), JWT(身份验证), MailUtil(邮件发送) 项目结构 srcmainjavacomassetManagetusdt主要代码目录

    java邮件发送代码

    我们将参考提供的`MailUtil.java`文件,以及使用的`mail-1.4.1.jar`库。 `mail-1.4.1.jar`是一个JavaMail API的实现,它提供了邮件发送和接收的功能。JavaMail API遵循了Internet邮件的标准协议,如SMTP(Simple ...

    EmailUtils Java mail 邮件发送

    在Java编程领域,发送电子邮件是一项常见的任务,而`EmailUtils`是用于简化这一过程的工具类。`JavaMail`库提供了API,使得开发者能够通过Java程序来发送、接收和处理邮件。下面我们将深入探讨`EmailUtils`和`...

    包含mail、jar包

    在IT行业中,`mail`和`jar`包是两个重要的概念,它们分别涉及到电子邮件处理和Java应用程序的打包与分发。 首先,让我们深入了解一下`mail`。在编程领域,特别是Java环境中,`mail`通常指的是JavaMail API。...

    基于ssm+maven的旅游网站+源代码+文档说明

    基于ssm+maven的旅游网站 mysql数据库 sql表文件已经放在sources下,请自行运行建表 mailUtil 邮件发送util中,请自行填写邮箱账号与密码 项目介绍 这个网站是为了流浪动物和想要领养流浪动物的爱心人士提供一个平台...

    mtn首页截图。javamail

    描述中的“javamail实现的demo”意味着包含的代码文件`MailUtil.java`是一个JavaMail的演示示例,开发者可以借此理解如何使用JavaMail API。"其中还包括相应的jar"指的是`mail.jar`和`activation.jar`,这两个JAR...

    java 邮件 mail 源码 事例 demo

    `Mail.txt`可能包含一个简单的邮件发送示例,`MailUtil.txt`可能是一些邮件操作的实用工具函数,而`main.txt`可能是主程序入口点,展示如何调用这些功能。`说明.txt`可能提供了关于如何运行和修改这些代码的详细指南...

    javamail发送邮件例子

    现在,你可以通过调用 `MailUtil.sendEmailAsync()` 来并发发送多个邮件。这种方式可以大大提高发送大量邮件的效率,因为每个邮件的发送都在一个独立的线程中进行,不会阻塞主线程。 总结,JavaMail 提供了在 Java ...

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码

    ### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。...

Global site tag (gtag.js) - Google Analytics