`

spring 发送MAIL

 
阅读更多

spring对mail的支持是org.springframework.mail.MailSender接口来定义的,其中的org.springframework.mail.javamail.JavamailSenderImpl这个实现类提供了对javamail的支持,下面简单介绍其用法,首先看下不用注入的方法,再看用注入的方法。

1、发送简单邮件的例子
     首先,我们要需要springframwork 1.2.8中lib目录下的j2ee目录的activation.jar和mail.jar文件,将它们放到工程的lib目录下去。
  发送一个简单邮件的例子如下
  import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.SimpleMailMessage;

public class SimpleMailDemo {
    public static void main(String[] args) throws Exception {
        JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
        // 设定 Mail Server
        senderImpl.setHost("mail.xxxxx");
        
      //SMTP验证时,需要用户名和密码
        senderImpl.setUsername("abc");
        senderImpl.setPassword("defdf");
       
        // 建立邮件讯息
        SimpleMailMessage mailMessage = new SimpleMailMessage();
       
        // 设定收件人、寄件人、主题与内文
        mailMessage.setTo(hello@abc.com);
        mailMessage.setFrom(der@def.com);
        mailMessage.setSubject("Test");
        mailMessage.setText("This is a test!!!");
       
        // 传送邮件
        senderImpl.send(mailMessage);
       
        System.out.println("邮件传送OK..");
    }
}

2、发送HTML格式的邮件
    要发送HTML格式的话,要用org.springframework.mail.javamail.MimeMessageHelper来建立HTML邮件
  import org.springframework.mail.javamail.JavaMailSenderImpl;
import javax.mail.internet.MimeMessage;
import org.springframework.mail.javamail.MimeMessageHelper;
public class HTMLMailDemo {
    public static void main(String[] args) throws Exception {
        JavaMailSenderImpl senderImpl =
            new JavaMailSenderImpl();
        
      // 设定 Mail Server
        senderImpl.setHost("mail.xxxxx");
        
      //SMTP验证时,需要用户名和密码
        senderImpl.setUsername("abc");
        senderImpl.setPassword("defdf");
        
        // 建立邮件讯息
        MimeMessage mailMessage =
            senderImpl.createMimeMessage();
        MimeMessageHelper messageHelper =
            new MimeMessageHelper(mailMessage);
               
        // 设定收件人、寄件人、主题与内文
        messageHelper.setTo("xxx@your_mail_server.com");
        messageHelper.setFrom("xxx@your_mail_server.com");
        messageHelper.setSubject("Test");
        messageHelper.setText(
                "<html><head></head><body><h1>Hello! Spring!"
                + "</h1></body></html>", true);
       
        // 传送邮件
        senderImpl.send(mailMessage);
       
        System.out.println("邮件传送OK...");
    }
}
 
3、发送带附件的邮件
    这时要用MimeMessageHelper的addAttachement()方法
 import java.io.File;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import javax.mail.internet.MimeMessage;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.MimeMessageHelper;
public class AttachedFileDemo {
    public static void main(String[] args) throws Exception {
        JavaMailSenderImpl senderImpl =
                      new JavaMailSenderImpl();
        
                //SMTP验证时,需要用户名和密码
        senderImpl.setUsername("abc");
        senderImpl.setPassword("defdf");

                MimeMessage mailMessage =     senderImpl.createMimeMessage();
        MimeMessageHelper messageHelper =  new MimeMessageHelper(mailMessage, true);
                
           messageHelper.setTo("def@erer.net");
        messageHelper.setFrom("bfg@tom.com");
        messageHelper.setSubject("Test");
        messageHelper.setText(
            "<html><head></head><body><h1>Hello! Spring!"
            + "</h1></body></html>", true);
       
        FileSystemResource file =
                new FileSystemResource(
                           new File("d:/test.rar"));
        messageHelper.addAttachment("test.rar", file);
        
               senderImpl.send(mailMessage);
       
        System.out.println("OK");
    }
}


4、用注入的方式来配置邮件,和之前的差不多拉
  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" >
<beans>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host">
  <value>smtp.xxx.com</value>
</property>
<property name="javaMailProperties">
  <props>
    <!-- 如果要使用用户名和密码验证,这一步需要 -->
   <prop key="mail.smtp.auth">true</prop>
  </props>
</property>
<property name="username">
<value>你的Email地址</value>
</property>
<property name="password">
<value>你的Email密码</value>
</property>

</bean>
 
<!-- 简单的message -->

<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
<property name="to">
<value>收件人地址</value>
</property>
 
<property name="from">
<value>你的地址</value>
 
</property>
<property name="subject"> <!-- Email 标题 -->
<value>A Spring Mail sender</value>
</property>
</bean>
 
<!-- 测试发送的类 -->

<bean id="testMailSender" class="test.mail.TestSenderMail">
<property name="mailMessage">
<ref bean="mailMessage"/>
</property>
 
<property name="mailSender">
<ref bean="mailSender"/>
</property>
</bean>

</beans>
上面的配置好以后就可以直接发送了, 看看TestSenderMail.java的代码:
package test.mail;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
public class TestSenderMail {
  private MailSender mailSender;
  private SimpleMailMessage mailMessage;
 
  public TestSenderMail() {
   
  }
 
  public SimpleMailMessage getMailMessage() {
    return mailMessage;
  }
  public void setMailMessage(SimpleMailMessage mailMessage) {
    this.mailMessage = mailMessage;
  }
  public MailSender getMailSender() {
    return mailSender;
  }
  public void setMailSender(MailSender mailSender) {
    this.mailSender = mailSender;
  }
 
  public void sendMail() {
    SimpleMailMessage message = new SimpleMailMessage(mailMessage);
    //设置email内容,
    message.setText("测试Spring 发送Email.");
   
    try {
      mailSender.send(message);
    } catch (MailException e) {
      // TODO Auto-generated catch block
      System.out.println("O . 发送Email失败了....");
      e.printStackTrace();
    }
  }
}
TestApp.java
 
package test.mail;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestApp {
  /**
   * @param args
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    ApplicationContext context = new ClassPathXmlApplicationContext(
        "test/mail/mail.xml");
    TestSenderMail sender = (TestSenderMail) context
        .getBean("testMailSender");
    sender.sendMail();
  }
  }
分享到:
评论

相关推荐

    spring mail 发送html

    在IT行业中,Spring框架是一个广泛使用的Java应用开发框架,它提供了丰富的功能,包括Spring Mail模块,用于发送电子邮件。本文将详细讲解如何利用Spring Mail发送HTML格式的邮件,以及如何发送普通文本、附件和...

    spring mail通过代理发送邮件

    标题中的“spring mail通过代理发送邮件”涉及到的是Spring框架中处理电子邮件发送的功能,尤其是在网络环境有限制或需要通过代理服务器的情况下。Spring Mail是Spring Framework的一个扩展模块,它提供了与JavaMail...

    java 发送邮件 spring发送邮件Mail

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

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

    本教程将围绕"Spring + Mail"的组合,结合Freemarker模板引擎,提供一个完整的发送邮件的Demo。 首先,我们需要在项目中添加相关的依赖。Spring框架通常与Spring Boot一起使用,这样可以简化配置。在`pom.xml`或`...

    java发送邮件 spring发送邮件

    通过以上步骤,你就可以在Java应用中使用Spring发送邮件了。当然,实际的邮件发送可能更复杂,涉及HTML内容、附件、多部分消息等,可以使用`MimeMessage`和`MimeMessageHelper`类来构建复杂的邮件结构。例如,添加...

    spring发送邮件demo

    下面将详细介绍如何使用Spring发送邮件。 首先,我们需要在项目中引入Spring的邮件支持。这通常通过添加`spring-context-support`依赖来完成,该依赖包含了处理邮件发送所需的类。在Maven项目中,可以在pom.xml文件...

    spring-boot-mail

    spring boot 邮件发送,亲测可用 #字符集 spring.mail.default-encoding=UTF-8 #电子邮件地址 spring.mail.host=smtp.126.com #Application spring.application.name=SEND-MAIL #授权密码 spring.mail.password=...

    spring mail 的发送

    Spring Mail 是一个强大的Java库,用于处理电子邮件的发送。它为Spring框架的用户提供了便捷的邮件服务集成,使得在应用程序中发送邮件变得简单而高效。本文将深入探讨Spring Mail的基本概念、配置、以及如何通过一...

    Spring mail发送邮件实例

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

    使用springMail发送带附件的email

    SpringMail是一个在Java应用中发送电子邮件的库,它利用了JavaMail API的简便性和灵活性。在本项目中,我们将深入探讨如何使用SpringMail发送带有附件的电子邮件。首先,我们需要了解几个核心概念: 1. **JavaMail ...

    spring mail

    Spring Mail 是一个在Java应用程序中发送电子邮件的库,它与流行的Spring框架紧密集成,使得邮件发送功能的实现变得更加简单和灵活。Spring Mail 提供了一种优雅的方式来配置和使用JavaMail API,而无需直接处理复杂...

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

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

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

    Spring Boot整合邮件发送并保存历史发送邮箱 项目描述 项目主要是使用 Spring Boot 发送邮件,主要的技术点有: 1、Spring Boot +mybatis的整合 2、Spring Boot项目中jsp的使用 3、Spring Boot 发送邮件...

    spring mail的使用

    Spring Mail是Spring框架的一部分,它提供了一种在Java应用程序中发送电子邮件的能力。通过Spring的抽象层,我们可以方便地集成各种邮件服务提供商,如Gmail、Yahoo等,而无需直接处理复杂的JavaMail API。本篇文章...

    Spring邮件发送服务(java邮件发送)

    在Java开发中,Spring框架提供了一种方便的方式来发送电子邮件,这就是SpringMail模块。SpringMail使得在应用程序中集成邮件服务变得更加简单,它支持多种功能,包括发送带有多个附件、多接收者(包括抄送和暗送)的...

    springMail

    SpringMail 是一个基于 Java 的库,它允许开发者在 Spring 框架中轻松地发送电子邮件。这个库使得处理复杂的邮件任务变得简单,包括发送带有正文、附件以及多种内容类型的邮件。下面将详细介绍 SpringMail 的使用...

    Spring mail 发送邮件

    Spring Mail 是一个在Java应用程序中发送电子邮件的简单且强大的库,它是Spring框架的一部分。通过集成Spring Mail,开发者可以轻松地将邮件发送功能整合到他们的应用中。本篇将深入探讨如何使用Spring Mail发送邮件...

Global site tag (gtag.js) - Google Analytics