`

使用Spring 的封装的MailSender

阅读更多
  1. 使用Spring 的封装的MailSender,确实省事多了!
    但在使用中,还是得注意些问题

    1.增加验证,否则会报:553 authentication is required 的错误信息
    Properties prop = new Properties();
    prop.setProperty("mail.smtp.auth", "true");
    JavaMailSenderImpl.setJavaMailProperties(prop);

    2.当邮件内容是HTML语言时的中文问题:
    初始化MimeMessageHelper辅助类时,设置"GBK" encoding!
    如:
    MimeMessageHelper messageHelp = new MimeMessageHelper(message,true,"GBK");
    同时在设置:<META http-equiv=Content-Type content='text/html; charset=GBK'>
    如果都设置为"UTF-8",在某些邮件客户端标题是冷僻字时,不能正常显示!

    3.邮件附件的中文问题!
    spring的文档里面说MimeMessageHelper设置了encoding,同时对title,text,attach产生作用,但还是会出问题:
    解决方法:MimeUtility.encodeWord(file.getName()); 就OK了!

    以下是可以运行的代码
    SendMailDemo.java

    使用Spring 的封装的MailSender,确实省事多了!
    但在使用中,还是得注意些问题

    1.增加验证,否则会报:553 authentication is required 的错误信息
    Properties prop = new Properties();
    prop.setProperty("mail.smtp.auth", "true");
    JavaMailSenderImpl.setJavaMailProperties(prop);

    2.当邮件内容是HTML语言时的中文问题:
    初始化MimeMessageHelper辅助类时,设置"GBK" encoding!
    如:
    MimeMessageHelper messageHelp = new MimeMessageHelper(message,true,"GBK");
    同时在设置:<META http-equiv=Content-Type content='text/html; charset=GBK'>
    如果都设置为"UTF-8",在某些邮件客户端标题是冷僻字时,不能正常显示!

    3.邮件附件的中文问题!
    spring的文档里面说MimeMessageHelper设置了encoding,同时对title,text,attach产生作用,但还是会出问题:
    解决方法:MimeUtility.encodeWord(file.getName());就OK了!

    以下是可以运行的代码
    SendMailDemo.java

  2. import java.io.File;   
  3. import java.io.UnsupportedEncodingException;   
  4. import java.util.Properties;   
  5.   
  6. import javax.mail.MessagingException;   
  7. import javax.mail.internet.MimeMessage;   
  8. import javax.mail.internet.MimeUtility;   
  9.   
  10. import org.springframework.mail.javamail.JavaMailSenderImpl;   
  11. import org.springframework.mail.javamail.MimeMessageHelper;   
  12.   
  13. public class SendMailDemo {   
  14.     public  void send163ByMutil() throws MessagingException {   
  15.         JavaMailSenderImpl  javaMail  =  new  JavaMailSenderImpl();   
  16.         javaMail.setHost("smtp.163.com");   
  17.         javaMail.setPassword("passowrd");   
  18.         javaMail.setUsername("username");   
  19.         Properties  prop  =  new  Properties();   
  20.         prop.setProperty("mail.smtp.auth", "true");        
  21.         javaMail.setJavaMailProperties(prop);   
  22.         MimeMessage  message  =  javaMail .createMimeMessage();   
  23.         MimeMessageHelper  messageHelp  =  new  MimeMessageHelper(message,true,"GBK");   
  24.         messageHelp.setFrom("likun35@163.com");   
  25.         messageHelp.setTo("likun35@163.com");   
  26.         messageHelp.setSubject("邮件测试");   
  27.         // messageHelp   
  28.         String  body  =  "<html><head><META http- equiv=Content-Type content='text/html; charset=GBK'></HEAD>< title>test</title></head><body>dear 小燕子 \n " ;   
  29.         body+=" < red > This is Text! </ red >  pic  < img   src = 'cid:a' > </ img > < br > hello < img   src = 'cid:b' > </ img > </ body > </ html > ";   
  30.         messageHelp.setText(body, true);   
  31.         messageHelp.addInline("a", new File("E:/xiezi.jpg"));   
  32.         messageHelp.addInline("b", new File("E:/logo.png"));           
  33.         File  file = new  File("E:/Favorites中文文件.rar");        
  34.         try {   
  35.             messageHelp.addAttachment(MimeUtility.encodeWord(file.getName()), file);   
  36.         } catch (UnsupportedEncodingException e) {             
  37.             e.printStackTrace();   
  38.         }   
  39.         javaMail.send(message);   
  40.     }   
  41.     public static void main(String[] args) throws MessagingException {         
  42.         SendMail  send = new  SendMail();   
  43.         send.send163ByMutil();   
  44.   
  45.     }   
  46. }   
分享到:
评论

相关推荐

    spring各种邮件发送

    为了使用JavaMail中的一些特色, 比如MIME类型的信件, Spring提供了MailSender的一个子接口, 即org.springframework.mail.javamail.JavaMailSender。Spring还提供了一个回调接口org.springframework.mail.javamail....

    Spring进阶—如何用Java代码实现邮件发送

    3. 在代码中,使用Spring的`MailSender`接口实例来创建并发送`SimpleMailMessage`对象。 对于更复杂的邮件需求,例如发送带有附件的邮件,可以使用`Multipart`邮件来添加附件,如图片文件。内嵌资源邮件允许将图像...

    开源框架 Spring Gossip

    简单邮件 HTML 邮件 内嵌图片或附档 排程 Spring则对 java.util.Timer提供了抽象封装,让您可以善用Spring的容器管理功能,而Spring对Quartz进行了封装,让它在使用上更加方便。 使用 ...

    SpringMail发邮件

    SpringMail则将JavaMail的复杂性封装起来,提供了一套符合Spring编程风格的API,使得在Spring应用中配置和使用邮件服务变得简单。 要使用SpringMail,首先需要在项目中引入对应的依赖。如果是Maven项目,可以在pom....

    spring mail 的发送

    Spring Mail是Spring生态中的一个组件,它基于JavaMail API进行封装,提供了与邮件服务器交互的能力。JavaMail API 是Java平台上的标准邮件API,提供了创建、发送和接收邮件的功能。Spring Mail则简化了这些操作,...

    spring+maven实现邮件发送

    通过本文,读者可以了解如何使用 Spring 的 MailSender 和 SimpleMailMessage 来发送邮件,并了解 Maven 的配置和依赖注入机制。 一、Spring Mail 介绍 Spring Mail 是 Spring 框架中的一部分,提供了发送邮件的...

    Springboot阿里、腾讯短信和邮件发送service封装

    本文将详细介绍如何在Spring Boot项目中封装阿里和腾讯的短信与邮件发送服务,并根据配置动态启用或禁用这些功能。 首先,我们需要在`pom.xml`文件中添加相关的依赖。对于阿里云短信服务,我们需要添加`alibaba-...

    Spring之Email<封装了常用的四种发送Email的方法(TEXT,HTML,IMG,FILE)>

    为了实现邮件发送,我们需要配置Spring的`MailSender` bean,通常在`applicationContext.xml`或使用Java配置类来设置SMTP服务器的相关参数,如主机名、端口号、用户名、密码等。 发送TEXT类型的邮件是最基本的形式...

    spring-boot-mail邮件发送服务 v1.0.zip

    JavaMailSender是Spring提供的邮件发送API,它封装了JavaMail API,使我们能够方便地发送各种类型的邮件,包括文本、HTML甚至附件。 要启用邮件服务,我们需要在`application.properties`或`application.yml`配置...

    springmail架包及各种邮件发送代码

    它封装了JavaMail API,提供了更简洁的接口,使得开发者在Spring框架中发送邮件变得容易。本篇将深入探讨SpringMail的使用方法以及各种邮件的发送代码示例。 1. **SpringMail的基本配置** 在使用SpringMail前,...

    Spring2.5发送邮件程序Demo

    如果你的项目使用了Spring的基于注解的配置,你可以使用`@Autowired`来注入`JavaMailSender`,并将其与`@Service`或`@Component`一起使用,以创建一个邮件服务类,封装邮件发送的逻辑。 在压缩包文件"mySpringMail...

    Spring框架JavaMailSender发送邮件工具类详解

    使用Spring框架JavaMailSender发送邮件工具类需要首先引入相关的jar包,包括spring-context、spring-beans、spring-core、java-mail等。然后,开发者需要创建一个JavaMailSenderImpl对象,并设置邮件服务器的主机名...

    spring发送邮件

    首先,Spring支持两种方式发送邮件:一是使用JavaMailSender接口,二是通过JavaMailSenderImpl类和MailSenderUtils工具类。这两种方法都基于JavaMail API,但Spring提供了一层抽象,使得邮件发送的代码更加简洁和...

    Spring Mail

    在实际开发中,你可以根据需求创建一个类,如`MailService`,并在其中封装邮件发送的方法,以便在项目中重复使用。 总的来说,Spring Mail提供了一种简洁、高效的方式来集成邮件发送功能到Spring应用中。通过合理...

    在spring利用javamail,quartz定时发送邮件

    Spring框架通过封装JavaMail API,进一步简化了这一过程,使得配置和使用变得更加简单。 #### Quartz简介 Quartz是一个开放源代码的任务调度库,可以用于Java应用程序中。它允许开发者定义任务并设置其执行的时间...

    spring邮件抽象层详解

    这个抽象层主要包含在`org.springframework.mail`包中,提供了`MailSender`接口和`SimpleMailMessage`类等核心组件。 ### 22.1. 简介 `MailSender`接口是Spring邮件抽象的核心,它定义了发送简单邮件的基本方法。...

    java spring 整合 email + quartz

    Java Spring 整合Email与...在Spring中,我们可以使用`org.springframework.scheduling.quartz.SchedulerFactoryBean`来创建一个Quartz调度器。你需要配置相关的Job和Trigger,以及它们之间的关联。例如: ```xml ...

    框架+ssh+电子商务

    4. **支付接口**:与第三方支付平台进行交互,如支付宝、微信支付,Spring的封装可以简化这个过程。 5. **搜索功能**:可以集成Elasticsearch等搜索引擎,提供高效的全站搜索。 6. **安全**:Struts2提供安全配置,...

    SpringMailTest.zip

    Spring 提供了一个发送电子邮件的...它包括了发送电子邮件的主要接口MailSender(实现类为org.springframework.mail.javamail.JavaMailSenderImpl,下面会用到改实现类)和封装了简单邮件属性的值对象SimpleMailMessage.

Global site tag (gtag.js) - Google Analytics