发送邮件接口:

package com.manxu.archetype.account.email;

import javax.security.auth.login.AccountException;

public interface AccountEmailService {

    void senMail(String to,String subject, String context) throws AccountException;

}

实现类:

package com.manxu.archetype.account.email;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.security.auth.login.AccountException; import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper; public class AccountEmailServiceImp implements AccountEmailService{ private JavaMailSender javaMailSender;
private String systemEmail; @Override
public void senMail(String to, String subject, String context) throws AccountException{
try {
MimeMessage my = javaMailSender.createMimeMessage();
MimeMessageHelper help = new MimeMessageHelper(my);
help.setFrom(systemEmail);
help.setTo(to);
help.setSubject(subject);
help.setText(context);
javaMailSender.send(my); } catch (Exception e) {
e.printStackTrace();
}
} public JavaMailSender getJavaMailSender() {
return javaMailSender;
} public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
} public String getSystemEmail() {
return systemEmail;
} public void setSystemEmail(String systemEmail) {
this.systemEmail = systemEmail;
} }

配置文件:

#email.protocol=smtps
#email.host=smtp.163.com
#email.port=465
#email.username=zhangchengjava1@163.com
#email.password=zhaojuan1
#email.auth=true
#email.systemEmail=zhangchengjava1@163.com ## greenmail 测试不需要服务器,可以把自身当前服务器,并提供虚拟用户,如本例发件 test@gmail.com,收件test2@gmail.com email.protocol=smtp
email.host=localhost
email.port=25
email.username=test@gmail.com
email.password=123456
email.auth=true
email.systemEmail=zhangchengjava1@163.com

测试类 用 junit

package com.manxu.archetype.account.email;

import javax.mail.Message;
import javax.security.auth.login.AccountException; import junit.framework.Assert; import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.icegreen.greenmail.util.GreenMail;
import com.icegreen.greenmail.util.ServerSetup;
import com.icegreen.greenmail.util.ServerSetupTest; public class AccountEmailServiceTest { private GreenMail greenMail; @Before
public void startMailServer(){
greenMail = new GreenMail(ServerSetup.SMTP);
greenMail.setUser("test2@gmail.com", "123456");
greenMail.start();
} @Test
public void testSendMail() throws Exception{
ApplicationContext ctx = new ClassPathXmlApplicationContext("account-email.xml");
AccountEmailService service = (AccountEmailService) ctx.getBean("accountEmailService"); String subject = "text subject";
String htmlText = "<h3>text</h3>";
service.senMail("test2@gmail.com", subject, htmlText);
greenMail.waitForIncomingEmail(2000, 1);
Message[] msgs = greenMail.getReceivedMessages();
Assert.assertEquals(1, msgs.length);
Assert.assertEquals(subject, msgs[0].getSubject());
} @After
public void stopMailServer(){
greenMail.stop();
} }
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.manxu</groupId>
<artifactId>hello_world_archetype</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging> <name>hello_world_archetype</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.2.3.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<version>1.3.1b</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency> <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build> </project>

javax.mail 发送邮件 , greenMail 测试 , spring的更多相关文章

  1. 使用Javax.mail 发送邮件

    使用Javax.mail 发送邮件 详细说明都在代码中: 引入依赖  <!--sun定义的一套接收.发送电子邮件的API-->    <dependency>      < ...

  2. Android 开发 使用javax.mail发送邮件。

    简介 sun公司开源的邮件发送工具. 依赖 implementation 'com.sun.mail:android-mail:1.6.0' implementation 'com.sun.mail: ...

  3. javax.mail 发送邮件异常

    一.运行过程抛出异常 1.Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/ ...

  4. 1.使用javax.mail, spring的JavaMailSender,springboot发送邮件

    一.java发邮件 电子邮件服务器:这些邮件服务器就类似于邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中,按功能划分有两种类型 SMTP邮件服务器:用户替用户发送邮件和接 ...

  5. spring -java.lang.NoClassDefFoundError: javax/mail/MessagingException

    今天遇到这个问题,网上找了半天,终于解决了,最后记录一下. spring集成了mail,于是就测试了下,结果报了java.lang.NoClassDefFoundError: javax/mail/M ...

  6. Spring Boot 揭秘与实战(七) 实用技术篇 - Java Mail 发送邮件

    文章目录 1. Spring Boot 集成 Java Mail 2. 单元测试 3. 源代码 Spring 对 Java Mail 有很好的支持.因此,Spring Boot 也提供了自动配置的支持 ...

  7. Java使用javax.mail.jar发送邮件并同意发送附件

    因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一 ...

  8. javamail发送邮件及错误解决方法javax.mail.AuthenticationFailedException: failed to connect, no password specified?

    javamail发送邮件及错误解决方法javax.mail.AuthenticationFailedException: failed to connect, no password specifie ...

  9. 使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.MessagingException: Exception reading response

    使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.Messagin ...

随机推荐

  1. css选择器, first-child,first-of-type

    选择制定的classname var li = $('.list-tab-group li.active'); <ul class="list-tab-group"> ...

  2. ldap快速配置

    1.[yum lamp环境] yum  -y install httpd httpd-devel mysql mysql-server mysql-devel php php-mysql php-co ...

  3. JS实现让滚轮控制网页头部显示与隐藏

    在很多网站中都有鼠标网上滚动头部就会滑出,继续往下滚动就会隐藏,下面看看实现方法 scroll(); function scroll(){// 入口方法 这个方法是获取事件的兼容,获取delta -- ...

  4. django celery 定时任务

    可参考上一篇:http://www.cnblogs.com/wumingxiaoyao/p/8515075.html 1. 安装 django-celery-beat pip3 install dja ...

  5. 装机 win7 64 IE11

    英文版win7,更改语言包 英文版 http://windows.microsoft.com/en-us/internet-explorer/download-ie 中文版 http://window ...

  6. C#--抽象工厂设计模式原理

    C#--抽象工厂设计模式原理 C#--抽象工厂设计模式--三层框架 C#--使用反射改进简单工厂

  7. webserive学习记录2-cxf框架基础使用

    cxf是一个webservice的框架,类似的还有axis,下面说一下cxf的基本使用. 首先要下载cxf的文件,然后要在项目中引入jar包,当然也可以通过maven进行管理.我用的是最新的3.2.1 ...

  8. python判断unicode是否是汉字,数字,英文,或者其他字符

    下面这个小工具包含了 判断unicode是否是汉字,数字,英文,或者其他字符. 全角符号转半角符号. unicode字符串归一化等工作. 还有一个能处理多音字的汉字转拼音的程序,还在整理中. #!/u ...

  9. STS或eclipse安装SVN插件

    安装sts--SVN插件 简介:sts是与eclipse类似的Java IDE开发工具(不了解的百度) 1.sts菜单栏 help->install New Software 依据大家的版本选择 ...

  10. fiddler无法抓取chrome解决方法

    前端开发中,不可避免的要和服务器端进行联调,少了fiddler这个利器可不行. 由于无线开发需要配置UA,我使用chrome进行访问,但是今儿一早过来,发现fiddler无法抓取chrome的请求了. ...