`

使用Spring Mail发送邮件

阅读更多
1.所需的Jar包:

Spring.jar

log4jXXX.jar

commons-logging.jar

以上是spring所需要的Jar包。

freemarker.jar

这个是使用模版必须的Jar包。

mail.jar

activation.jar

这两个是java mail需要的Jar包。

 

ApplicationContext.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
                    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                    http://www.springframework.org/schema/context
                    http://www.springframework.org/schema/context/spring-context-2.5.xsd
                    ">
 <bean id="mailSender"   
     class="org.springframework.mail.javamail.JavaMailSenderImpl">   
     <property name="host" value="smtp.qq.com"></property>   
     <property name="javaMailProperties">   
         <props>   
             <prop key="mail.smtp.auth">true</prop>   
             <prop key="mail.smtp.timeout">25000</prop>   
         </props>   
     </property>   
     <property name="username" value="297423093@qq.com" />   
     <property name="password" value="XXX" />   
 </bean>   

</beans>

发送程序(SpringMail.java):

import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;


import freemarker.template.Configuration;
import freemarker.template.Template;


public class SpringMail {    
    private Configuration cfg = new Configuration();      
        
 public static void main(String[] args) throws Exception {      
            
            SpringMail springMail = new SpringMail();   
//            springMail.sendMailWithAnnex();
             springMail.sendMail();  
         }      
           
         private void sendMail() throws Exception {    
          ApplicationContext ctx = new FileSystemXmlApplicationContext(      
             "src/applicationContext.xml");      
          JavaMailSender sender = (JavaMailSender) ctx.getBean("mailSender");      
             SimpleMailMessage mail = new SimpleMailMessage();      
             mail.setTo("qincidong@163.com"); //接收人      
             mail.setFrom("021507880@qq.com"); //发送人      
             mail.setSubject("这是一个Spring发送邮件的例子");      
             //嵌入ftl模版      
             cfg.setClassForTemplateLoading(getClass(), "/mail");      
             Map root = new HashMap();      
             root.put("username", "李波"); //模板变量      
             Template t = cfg.getTemplate("notify-mail.ftl");      
             StringWriter writer = new StringWriter();      
             t.process(root, writer);      
             //把模版内容写入邮件中      
             mail.setText(writer.toString());      
             sender.send(mail);      
             System.out.println("邮件发送成功!");      
         }  
         
         // 带附件
         public void sendMailWithAnnex() throws Exception {
         // TODO Auto-generated method stub
       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("qincidong@qq.com");
        helper.setTo("qincidong@163.com");
        helper.setSubject(" 测试spring Mail的附件功能");
        //需要将附件显示在html中
        //在标签中用cid:xx 标记,使用helper.addInline()方法添加
        helper.setText("<html><body>javaeye是个好网站:<br>"+
          "<a href='http://www.javaeye.com'>" +
          "<img src='cid:logo'></a></body></html>",true);
        helper.addInline("logo", new ClassPathResource("logo.gif"));
        helper.addAttachment("javaeye.gif", new ClassPathResource("javaeye.gif"));
        
       } catch (MessagingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
      
       mailSender.send(mime);
       System.out.println("带附件的邮件发送成功!");
         }
            
}  

notify-mail.ftl:

<body>
欢迎加入!      
      
亲爱的${username}      
      
请点击链接完成注册:      <a href='http://www.javaeye.com'>http://www.javaeye.com</a>
      
如果您的email程序不支持链接点击,请将上面的地址拷贝至您的浏览器(如IE)的地址栏进入****。      
      
您可以在***:      
      
查看最新的影视资料,查看各种相关消费产品,在这里交友,灌水……;      
      
希望您在**度过快乐的时光!      
      
-       
      
(这是一封自动产生的email,请勿回复。)     
</body>

 

分享到:
评论

相关推荐

    使用springMail发送带附件的email

    在本项目中,我们将深入探讨如何使用SpringMail发送带有附件的电子邮件。首先,我们需要了解几个核心概念: 1. **JavaMail API**: 这是Java平台上的一个标准API,用于处理邮件相关任务,如创建、发送和接收邮件。它...

    spring mail通过代理发送邮件

    首先,要使用Spring Mail发送邮件,你需要在Spring配置文件中配置JavaMailSender。这通常涉及到以下几个关键属性的设置: 1. `host`:SMTP服务器的地址。 2. `port`:SMTP服务器的端口号。 3. `protocol`:默认为...

    Spring mail发送邮件

    使用Spring mail发送邮件的完整实例,包含代码与Spring mail的jar,可直接运行与使用。相关学习文档参考博客《Spring Mail邮件发送 http://blog.csdn.net/chenxiang0207/article/details/8256528》。

    Spring mail 发送邮件

    本篇将深入探讨如何使用Spring Mail发送邮件,以及它背后的实现原理。 首先,我们需要在项目中引入Spring Mail的依赖。通常,这可以通过Maven或Gradle来完成。对于Maven用户,可以在pom.xml文件中添加以下依赖: `...

    Spring Boot整合邮件发送并保存历史发送邮箱

    和上面对比,这次发送邮件使用 MimeMessageHelper 类。MimeMessageHelper 支持发送复杂邮件模板,支持文本、附件、HTML、图片等,接下来我们会继续使用。 (3)发送带附件的邮件 在 MailService 添加 ...

    Spring mail发送邮件实例

    ### Spring Mail 发送邮件实例详解 #### 一、Spring Mail 概述 Spring Mail 是 Spring 框架中用于处理电子邮件发送的一个模块。它提供了一种简单的方式来进行邮件的发送,支持多种邮件发送协议,例如 SMTP 等,...

    spring mail

    三、使用Spring Mail发送邮件 1. 创建JavaMailSender实例:通过Spring的依赖注入获取`JavaMailSender`对象。 2. 创建Message:使用`SimpleMailMessage`或`MimeMessage`创建邮件对象,设置收件人、抄送人、主题、正文...

    spring mail 的发送

    在`springmail2`这个示例项目中,可能包含了一个简单的Spring Boot应用,演示了如何使用Spring Mail发送邮件。这个示例可能包括一个`Main`类,启动Spring Boot应用,并调用`MailService`发送一封测试邮件。代码可能...

    SpringMail发邮件

    SpringMail是Spring框架的一个扩展,它为Java应用提供了一个简单且强大的邮件发送功能。通过集成SpringMail,开发者可以轻松地在应用程序中实现电子邮件的发送,无论是普通的文本邮件、HTML格式的邮件,还是带有附件...

    spring发送邮件demo

    在Spring中,发送电子邮件的功能是通过Spring的Mail API实现的,这在系统监控、报警通知、用户验证等场景中非常常见。下面将详细介绍如何使用Spring发送邮件。 首先,我们需要在项目中引入Spring的邮件支持。这通常...

    利用 spring mail 通过 gmail(SSL) 发邮件

    Spring Mail是一个Java库,它简化了通过JavaMail API发送电子邮件的过程。本教程将详细讲解如何利用Spring Mail通过Gmail的SSL(安全套接层)协议来发送邮件。 首先,我们需要在项目中引入Spring Mail的依赖。如果...

    spring mail 发送html

    本文将详细讲解如何利用Spring Mail发送HTML格式的邮件,以及如何发送普通文本、附件和嵌入式图片等内容。 首先,我们需要在项目中引入Spring Mail的相关依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ...

    java 发送邮件 spring发送邮件Mail

    Spring框架提供了一种优雅的方式来处理这个任务,它整合了JavaMailSender接口和JavaMail API,使得在Java应用程序中发送邮件变得更加简单。让我们深入探讨这个主题。 首先,JavaMail API是Java用来处理邮件收发的...

    spring mail的使用

    至此,你已经了解了如何使用Spring Mail发送简单的文本邮件、HTML邮件以及包含附件的邮件。通过这种方式,你可以轻松地在你的应用中集成邮件功能,无论是发送注册验证邮件、系统通知还是其他类型的通信。记得在实际...

    spring + mail + 发送邮件完整 demo (含注释)

    通过这个Demo,你可以了解到如何配置邮件服务器、如何使用Freemarker模板生成动态邮件内容,以及如何利用Spring的`JavaMailSender`接口发送邮件。这只是一个基础的实现,你还可以根据需要扩展功能,比如支持附件、...

    Spring 高效批量邮件发送

    在本话题中,我们将探讨“Spring高效批量邮件发送”这一技术点,这通常涉及到Spring框架中的邮件服务模块以及如何优化邮件发送的效率。 首先,Spring框架的MailSender接口是处理邮件发送的核心组件。它提供了send()...

Global site tag (gtag.js) - Google Analytics