开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发、多个附件发送等需求。如果需要可以参照如下源代码进行修改完成。
  1. POM文件配置

     <dependencies>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.1.6.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.1.6.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
    </dependency>
    </dependencies>

    POM dependencies

  2. spring 配置
     <!-- Production implementation of the JavaMailSender interface, supporting
    both JavaMail MimeMessages and Spring SimpleMailMessages -->
    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com" />
    <property name="port" value="587" />
    <property name="username" value="<!-- Provide your Gmail ID -->" />
    <property name="password" value="<!-- Provide your Gmail Password -->" /> <!-- The name of the property, following JavaBean naming conventions -->
    <property name="javaMailProperties">
    <props>
    <prop key="mail.transport.protocol">smtp</prop>
    <prop key="mail.smtp.auth">true</prop>
    <prop key="mail.smtp.starttls.enable">true</prop>
    <prop key="mail.debug">true</prop>
    </props>
    </property>
    </bean>

    spring 配置

  3. 邮件发送接口
     /**
    * Copyright (c) 2015, www.wisdombud.com
    * All Rights Reserved.
    */
    package com.wisdombud.wisdomhr.common.srv; import java.io.FileNotFoundException; import javax.mail.MessagingException; /**
    * 功能: 邮件发送接口.<br/>
    * date: 2015年8月24日 上午9:53:05 <br/>
    *
    * @author joseph
    * @version
    */
    public interface MailSenderSrv {
    /**
    * 功能: 发普通邮件,msgBody是普通的文本.<br/>
    * date: 2015年8月24日 上午9:57:19 <br/>
    *
    * @author joseph
    * @param toAddress
    * @param fromAddress
    * @param subject
    * @param msgBody
    */
    void sendEmail(String toAddress, String fromAddress, String subject, String msgBody); /**
    * 功能: 发html邮件或者普通邮件,msgBody是html文本或者普通文本.<br/>
    * MimeMessage 消息发送.<br/>
    * date: 2015年8月24日 上午9:57:19 <br/>
    *
    * @author joseph
    * @param toAddress
    * @param fromAddress
    * @param subject
    * @param msgBody
    * @throws MessagingException
    */
    void sendHtmlEmail(String toAddress, String fromAddress, String subject, String htmlBody) throws MessagingException; /**
    * 功能: 发html邮件或者普通邮件,msgBody是html文本或者普通文本,带附件.<br/>
    * MimeMessage 消息发送.<br/>
    * date: 2015年8月24日 上午9:57:19 <br/>
    *
    * @author joseph
    * @param toAddress
    * @param fromAddress
    * @param subject
    * @param msgBody
    * @throws MessagingException
    * @throws FileNotFoundException
    */
    void sendHtmlEmail(String toAddress, String fromAddress, String subject, String htmlBody, String filePath)
    throws MessagingException, FileNotFoundException; /**
    * 功能: 发html邮件或者普通邮件,msgBody是html文本或者普通文本,带附件.<br/>
    * MimeMessage 消息发送.<br/>
    * date: 2015年8月24日 上午9:57:19 <br/>
    *
    * @author joseph
    * @param toAddress
    * @param fromAddress
    * @param subject
    * @param htmlBody
    * @param filePath
    * @param fileName
    * @throws MessagingException
    * @throws FileNotFoundException
    */
    void sendHtmlEmail(String toAddress, String fromAddress, String subject, String htmlBody, String filePath,
    String fileName) throws MessagingException, FileNotFoundException;
    }

    邮件发送接口代码

  4. 邮件发送实现
     /**
    * Copyright (c) 2015, www.wisdombud.com
    * All Rights Reserved.
    */
    package com.wisdombud.wisdomhr.common.srv; import java.io.File;
    import java.io.FileNotFoundException; import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.mail.SimpleMailMessage;
    import org.springframework.mail.javamail.JavaMailSender;
    import org.springframework.mail.javamail.MimeMessageHelper;
    import org.springframework.stereotype.Service; /**
    * 功能: 邮件发送实现.<br/>
    * date: 2015年8月24日 上午10:07:01 <br/>
    *
    * @author joseph
    * @version
    */
    @Service("mailSenderSrv")
    public class MailSenderSrvImpl implements MailSenderSrv { @Autowired
    private JavaMailSender mailSender; /**
    * @see com.wisdombud.wisdomhr.common.srv.MailSenderSrv#sendEmail(java.lang.String,
    * java.lang.String, java.lang.String, java.lang.String)
    */ @Override
    public void sendEmail(String toAddress, String fromAddress, String subject, String msgBody) {
    SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
    simpleMailMessage.setFrom(fromAddress);
    simpleMailMessage.setTo(toAddress);
    simpleMailMessage.setSubject(subject);
    simpleMailMessage.setText(msgBody);
    mailSender.send(simpleMailMessage);
    } /**
    * @throws MessagingException
    * @see com.wisdombud.wisdomhr.common.srv.MailSenderSrv#sendHtmlEmail(java.lang.String,
    * java.lang.String, java.lang.String, java.lang.String)
    */ @Override
    public void sendHtmlEmail(String toAddress, String fromAddress, String subject, String htmlBody)
    throws MessagingException {
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8");
    helper.setTo(toAddress);
    helper.setFrom(fromAddress);
    helper.setText(htmlBody, true);
    helper.setSubject(subject); mailSender.send(message); } /**
    * @throws MessagingException
    * @throws FileNotFoundException
    * @see com.wisdombud.wisdomhr.common.srv.MailSenderSrv#sendHtmlEmail(java.lang.String,
    * java.lang.String, java.lang.String, java.lang.String,
    * java.lang.String)
    */ @Override
    public void sendHtmlEmail(String toAddress, String fromAddress, String subject, String htmlBody, String filePath)
    throws MessagingException, FileNotFoundException {
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
    helper.setTo(toAddress);
    helper.setFrom(fromAddress);
    helper.setText(htmlBody, true);
    helper.setSubject(subject);
    File file = new File(filePath);
    if (!file.exists()) {
    throw new FileNotFoundException("找不到附件:" + filePath);
    }
    helper.addAttachment(file.getName(), file);
    mailSender.send(message);
    } /**
    * @throws MessagingException
    * @throws FileNotFoundException
    * @see com.wisdombud.wisdomhr.common.srv.MailSenderSrv#sendHtmlEmail(java.lang.String,
    * java.lang.String, java.lang.String, java.lang.String,
    * java.lang.String)
    */ @Override
    public void sendHtmlEmail(String toAddress, String fromAddress, String subject, String htmlBody, String filePath,
    String fileName) throws MessagingException, FileNotFoundException {
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
    helper.setTo(toAddress);
    helper.setFrom(fromAddress);
    helper.setText(htmlBody, true);
    helper.setSubject(subject);
    File file = new File(filePath);
    if (!file.exists()) {
    throw new FileNotFoundException("找不到附件:" + filePath);
    }
    helper.addAttachment(fileName, file);
    mailSender.send(message);
    }
    }

    邮件发送实现代码

  5. 邮件发送测试代码(需要自己替换邮箱)
     package com.wisdombud.wisdomhr.test.srv;
    
     import java.io.FileNotFoundException;
    
     import javax.mail.MessagingException;
    
     import org.junit.Test;
    import org.springframework.beans.factory.annotation.Autowired; import com.wisdombud.wisdomhr.common.srv.MailSenderSrv;
    import com.wisdombud.wisdomhr.test.base.AbstractTransactionContextTest; public class MailSrvTest extends AbstractTransactionContextTest {
    @Autowired
    private MailSenderSrv srv; @Test
    public void testTextMail() {
    String from = "test@163.com";
    String to = "test@163.com";
    String subject = "测试主题";
    String text = "测试内容";
    this.srv.sendEmail(to, from, subject, text);
    } @Test
    public void testHtmlMail() {
    String from = "test@163.com";
    String to = "test@163.com";
    String subject = "测试主题";
    String text = "<html><a href=\"www.baidu.com\">百度</a></html>";
    try {
    this.srv.sendHtmlEmail(to, from, subject, text);
    } catch (MessagingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } @Test
    public void testHtmlMailWithAttach() {
    String from = "test@163.com";
    String to = "test@163.com";
    String subject = "测试主题";
    String text = "<html><a href=\"www.baidu.com\">百度</a></html>";
    String filePath = "d://1.sql";
    try {
    this.srv.sendHtmlEmail(to, from, subject, text, filePath);
    } catch (MessagingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } @Test
    public void testHtmlMailWithAttachAndName() {
    String from = "test@163.com";
    String to = "test@163.com";
    String subject = "测试主题";
    String text = "<html><a href=\"www.baidu.com\">百度</a></html>";
    String filePath = "d://1.sql";
    String fileName = "haha.sql";
    try {
    this.srv.sendHtmlEmail(to, from, subject, text, filePath, fileName);
    } catch (MessagingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } }

    邮件发送测试代码

 

java spring 邮件发送的更多相关文章

  1. Spring 邮件发送

      前言:以前都是直接用Java自带的邮件工具发送邮件,现在Spring帮我们做了封装,提供了更好用更简单的发送邮件工具JavaMailSender 关于邮件服务器的设置就不在这里说了,直接去QQ邮箱 ...

  2. 用java实现邮件发送验证码

    java实现邮件发送验证码 建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SMTP服务没弄好.所以建议注册个别的邮箱,我就申请了个网易163邮箱瞬 ...

  3. java mail邮件发送(带附件) 支持SSL

    java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.ut ...

  4. Spring邮件发送1

    注意:邮件发送code中,邮件服务器的申请和配置是比较主要的一个环节,博主这里用的是QQ的邮件服务器.有需要的可以谷歌.百度查下如何开通. 今天看了下Spring的官方文档的邮件发送这一章节.在这里记 ...

  5. Java实现邮件发送

      概述 Spring Boot下面整合了邮件服务器,使用Spring Boot能够轻松实现邮件发送:整理下最近使用Spring Boot发送邮件和注意事项: Maven包依赖 <depende ...

  6. 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】

    一.邮件发送 1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示. SMTP协议使用的端口号:25 rfc821详细记载了该协议的相关信息 (1)使用telnet发送邮件(使用12 ...

  7. JAVA实现邮件发送功能(账号注册验证码、账号激活等)

    第一步,导入JAR包,JAR包下载地址[http://pan.baidu.com/s/1kVRvGyF] 如果是Maven,请直接在Pom文件中加入 <dependency> <gr ...

  8. spring邮件发送

    1,Emaill类: package com.learn.jsp.pojo; /** * 邮件基本信息 * @author kevin * */public class Email { private ...

  9. Java Mail 邮件发送简单封装

    上一篇文章我们用写了一个Java Mail 的Demo,相信你已经可以用那个例子来发送邮件了.但是Demo 有很多的问题. 首先每次发送需要配置的东西很多,包括发件人的邮箱和密码.smtp服务器和SM ...

随机推荐

  1. git rebase 和 merge的区别

  2. 安装SVN客户端重启电脑之后,右键未出现SVN选项的原因

    今天安装SVN客户端明明安装成功,电脑也重启过了,但是就是在右键里找不到SVN,百度了很久,删注册表.建用户组之类的方法都试过了,但是都没有效果. 后来才找到真正的原因,我的安装包是32位的,系统是6 ...

  3. 从零开始---控制台用c写俄罗斯方块游戏(2)

    上回说到下移的问题,这篇就说一下刷新的问题 我们控制台输出一般都是一行一行的输出,所以,在输出屏幕的时候,我们一个画面闪到另一个画面的效果 我刚开始弄的是用system("CLS" ...

  4. U-BOOT分析之:环境变量

    (环境如下:U-BOOT  S3C2440  LINUX) 记录自己的学习过程,如果分析有问题,请帮忙指正. 最近在研究U-BOOT的代码,其中的环境变量个人觉得用处非常大,所以重点学习和分析一下. ...

  5. Java基础加强之集合篇(模块记忆、精要分析)

    千里之行,始于足下.把别人的变成自己,再把自己的分享给别人,这也是一次提升的过程.本文的目的是以一篇文章从整体把握集合体系又不失一些细节上的实现,高手路过. 集合的作用与特点 Java是一门面向对象语 ...

  6. 前端用Webpact打包React后端Node+Express实现简单留言版

    前言 React官方推荐用Browserify或者Webpack 来开发React组件. Webpack 是什么?是德国开发者 Tobias Koppers 开发的模块加载器.Instagram 工程 ...

  7. 基于redis的点赞功能设计

    前言 点赞其实是一个很有意思的功能.基本的设计思路有大致两种, 一种自然是用mysql等 数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回m ...

  8. 移动web前端下拉刷新效果

    直接复制粘贴 放在页面中即可 <script> window.onload = function(){ window.addEventListener('touchstart', touc ...

  9. javascript的变量声明提升

    这篇随笔是对网上文章的整理吸收 1. javascript的作用域是函数,不是块 2. 在函数内部,javascript解释器会把var变量提升到当前域的最前面,但是函数体不会提升. 看下面例子: v ...

  10. 猥琐的wordpress后门分享

    https://www.t00ls.net/thread-37312-1-1.html 一个可以自动调用管理员帐号登录wordpress后台的方法. <?php require('../../. ...