1:安装  eyoumailserversetup 易邮邮件服务器 注册账号

2:安装Foxmail

登录以后会有个还原页面

3:测试

4:java 代码编写

配置文件:

mail.host=http://172.16.71.27:8080/
mail.smtpHost=172.16.71.27
mail.username=Admin@liveyc.com
mail.password=Admin

server层代码:

 package com.liveyc.eloan.base.service.impl;

 import java.util.Date;
import java.util.Properties;
import java.util.UUID; import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service; import com.liveyc.eloan.base.dao.EmailverifyDao;
import com.liveyc.eloan.base.domain.Emailverify;
import com.liveyc.eloan.base.service.IEmailVerifyService;
import com.liveyc.eloan.base.util.DateUtil;
import com.liveyc.eloan.util.BidConst;
import com.liveyc.eloan.util.UserContext; @Service
public class EmailVerifyServiceImpl implements IEmailVerifyService { @Autowired
private EmailverifyDao emailverifyDao; @Value("${mail.host}")
private String host; @Value("${mail.smtpHost}")
private String smtpHost; @Value("${mail.username}")
private String username; @Value("${mail.password}")
private String password; /**
* http://localhost:8080/checkEmailBind.do?key=4f399b0b-c17b-4e9d-9abc-0
* c816cd474bb 1,得到当前用户,得到要绑定的邮箱,绑定的时间,生成一个随机码--->EmailVerify;
* 2,发送一封邮件;在邮件的这里(http://localhost/checkEmailBind.do?key=随机码)
*/
@Override
public void sendVerifyEmail(String email) {
Emailverify ev = new Emailverify();
ev.setUserinfoId(UserContext.getCurrent().getId());
ev.setEmail(email);
ev.setSendTime(new Date());
ev.setUuid(UUID.randomUUID().toString().replace("-", "")); // 构造邮件内容
StringBuilder content = new StringBuilder(100)
.append("<html><head></head><body><h1>这是你在蓝源Eloan网站的验证邮件,请点击<a href='")
.append(host).append("checkEmailBind.do?key=")
.append(ev.getUuid()).append("'>").append("这里").append("</a>")
.append("完成邮箱绑定,有效期为"+BidConst.EMAIL_VALID_DAY+"天</h1></body></html>"); System.out.println(content); try {
sendEmail(email, "绑定邮箱验证邮件", content.toString());
this.emailverifyDao.insert(ev);
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
} /**
* 发送邮件
*
* @param email
* @param string
* @param string2
*/
private void sendEmail(String email, String subject, String content)
throws Exception {
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); // 设置发送邮件的SMTP服务器地址
senderImpl.setHost(smtpHost); // 创建一个邮件对象
MimeMessage mailMessage = senderImpl.createMimeMessage(); // 创建邮件对象的服务类
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,"UTF-8"); messageHelper.setTo(email);// 设置发给谁
messageHelper.setFrom(username);// 发件人
messageHelper.setSubject(subject);// 设置邮件标题
messageHelper.setText(content, true);// 设置邮件内容 senderImpl.setUsername(username); // 根据自己的情况,设置username
senderImpl.setPassword(password);// 设置密码 Properties prop = new Properties();
prop.put("mail.smtp.auth", "true");// 设置发送邮件需要身份认证
prop.put("mail.smtp.timeout", "25000");// 设置发送超时时间
senderImpl.setJavaMailProperties(prop); senderImpl.send(mailMessage);
} /**
* 获取请求中的随机码;
*
* 2,根据随机码得到EmailVerify对象; 3,只需要验证时间是否超时; 4,把emailverify中的邮箱地址绑定到指定用户上;
*/
@Override
public Emailverify verifyEmail(String key) {
Emailverify ev = this.emailverifyDao.selectByUuid(key);
if (ev != null
&& DateUtil.getSecondsBetweenDates(ev.getSendTime(), new Date()) <= 3600 * 24 * BidConst.EMAIL_VALID_DAY) {
return ev;
}
return null;
} }

5:页面测试

收到邮件了

java后台代码发送邮件的更多相关文章

  1. pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页

    java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...

  2. iOS 基于APNS消息推送原理与实现(包括JAVA后台代码)

    Push的原理: Push 的工作机制可以简单的概括为下图   图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple ...

  3. js脚本中执行java后台代码

    使用场景:关闭页面弹窗时执行sql语句. 其实js里执行sql语句有多种方式. 方式一:直接在js代码里调用sql语句,原则上不能使用,因为这将sql直接暴露在客户端,安全性极差. 方式二:在js里运 ...

  4. jquery.cookie.js && java后台代码 操作cookie实现记住当前用户输入信息代码

    下载jquery.cookie.js地址看这里:http://pan.baidu.com/s/1gdCPaN5 //初始化页面时验证是否记住了密码 $(document).ready(function ...

  5. Java后台代码调用Spring的@Service Bean的方式

    比如:在我的project中有一个类CompassIndexOperation,以: @Service("CompassIndexOperation") @Transactiona ...

  6. java调用Linux执行Python爬虫,并将数据存储到elasticsearch中--(java后台代码)

    该篇博客主要是java代码,如需相应脚本及java连接elasticsearch工具类代码,请移步到上一篇博客(https://www.cnblogs.com/chenyuanbo/p/9973685 ...

  7. java 后台代码调用接口

    import com.jiuqu.jollykeys.common.util.JsonUtil;import java.io.UnsupportedEncodingException;import j ...

  8. IOS 基于APNS消息推送原理与实现(JAVA后台)

    Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple Pu ...

  9. 转:IOS 基于APNS消息推送原理与实现(JAVA后台)

    Push的原理: Push 的工作机制可以简单的概括为下图   图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple ...

随机推荐

  1. Reverse Words in a String II

    Given an input string, reverse the string word by word. A word is defined as a sequence of non-space ...

  2. (暂时弃坑)ACM数论之旅15---置换群与Polya定理(我把标题看成poi了,poipoipoi(*≧▽≦)ツ)

    (挖坑...) ////////////////////////////////////////////////// 暂时弃坑 开学了,有空再写....

  3. 半夜思考之查漏补缺 , Spring 中 Bean 之间的依赖问题

    每次看书都会发现自己的不足 . 当一个 singten 的 Bean 依赖一个 prototype 的 Bean 时 , 如果不加注意 , 会发生一些奇怪的事情 , prototype 变为了 sin ...

  4. Java多线程(六) —— 线程并发库之并发容器

    参考文献: http://www.blogjava.net/xylz/archive/2010/07/19/326527.html 一.ConcurrentMap API 从这一节开始正式进入并发容器 ...

  5. C 函数——Day04

    C 函数 函数是一组一起执行一个任务的语句.每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 您可以把代码划分到不同的函数中.如何划分代码到不同的函数 ...

  6. 【BZOJ1835】基站选址(线段树)

    [BZOJ1835]基站选址(线段树) 题面 BZOJ 题解 考虑一个比较暴力的\(dp\) 设\(f[i][j]\)表示建了\(i\)个基站,最后一个的位置是\(j\)的最小代价 考虑如何转移\(f ...

  7. 数字表格(product)

    Description Solution 一开始的时候我是这么推的(\(f(n)\)表示斐波那契数列的第\(n\)项) \[ \begin{aligned} Ans&=\prod_{x=1}^ ...

  8. 【bzoj2002】 Hnoi2010—Bounce 弹飞绵羊

    http://www.lydsy.com/JudgeOnline/problem.php?id=2002 (题目链接) 题意 数轴上${n}$个点,每个点有一个权值${a_i}$,如果到达这个点,接下 ...

  9. 解题:CQOI 2017 老C的任务

    题面 找到真正的KD-Tree题目了!然而出题人并不打算放KD-Tree过,只能O2了 // luogu-judger-enable-o2 #include<cstdio> #includ ...

  10. JavaScript搜索关键字高亮的实现

    高亮功能主要是指对页面中指定区域的指定文字进行高亮显示,也就是背景着色.一般在搜索结果页面会经常用到这个功能. 下面就为大家提供一种解决方案,用javascript实现. 首先在<head> ...