java后台代码发送邮件
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后台代码发送邮件的更多相关文章
- pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页
java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...
- iOS 基于APNS消息推送原理与实现(包括JAVA后台代码)
Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple ...
- js脚本中执行java后台代码
使用场景:关闭页面弹窗时执行sql语句. 其实js里执行sql语句有多种方式. 方式一:直接在js代码里调用sql语句,原则上不能使用,因为这将sql直接暴露在客户端,安全性极差. 方式二:在js里运 ...
- jquery.cookie.js && java后台代码 操作cookie实现记住当前用户输入信息代码
下载jquery.cookie.js地址看这里:http://pan.baidu.com/s/1gdCPaN5 //初始化页面时验证是否记住了密码 $(document).ready(function ...
- Java后台代码调用Spring的@Service Bean的方式
比如:在我的project中有一个类CompassIndexOperation,以: @Service("CompassIndexOperation") @Transactiona ...
- java调用Linux执行Python爬虫,并将数据存储到elasticsearch中--(java后台代码)
该篇博客主要是java代码,如需相应脚本及java连接elasticsearch工具类代码,请移步到上一篇博客(https://www.cnblogs.com/chenyuanbo/p/9973685 ...
- java 后台代码调用接口
import com.jiuqu.jollykeys.common.util.JsonUtil;import java.io.UnsupportedEncodingException;import j ...
- IOS 基于APNS消息推送原理与实现(JAVA后台)
Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple Pu ...
- 转:IOS 基于APNS消息推送原理与实现(JAVA后台)
Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple ...
随机推荐
- [转帖]TLS 版本问题
转帖 From https://www.cnblogs.com/xjnotxj/p/7252043.html 一.环境: CentOS 6.8nginx 1.6.0php 7.0.10 二.背景 最近 ...
- Rotate Array II
Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array ...
- spring 整合 Struts1.X [转]
这篇博客摘自[http://blog.csdn.net/chendc201/article/details/8464008], 其中也有一些是自己增加的部分 . 第一步, 需要为 Struts 装载 ...
- BZOJ5324 JXOI2018守卫(区间dp)
对于每个区间[l,r],显然右端点r是必须放置守卫的.考虑其不能监视到的点,构成一段段区间.一个非常显然但我就是想不到的性质是,对于这样的某个区间[x,y],在(y+1,r)内的点都是不能监视到这个区 ...
- 树形DP入门详解+题目推荐
树形DP.这是个什么东西?为什么叫这个名字?跟其他DP有什么区别? 相信很多初学者在刚刚接触一种新思想的时候都会有这种问题. 没错,树形DP准确的说是一种DP的思想,将DP建立在树状结构的基础上. 既 ...
- c++11 标准库函数 std::move 和 完美转发 std::forward
c++11 标准库函数 std::move 和 完美转发 std::forward #define _CRT_SECURE_NO_WARNINGS #include <iostream> ...
- 消除unchecked cast Warning
在Java中,经常会将一个Object类型转成自己想要的Map.List等等.通常的做法是: Object obj = ....; Map<String, String> castMap ...
- 洛谷 P1356 数列的整数性 解题报告
P1356 数列的整数性 题目描述 对于任意一个整数数列,我们可以在每两个整数中间任意放一个符号'+'或'-',这样就可以构成一个表达式,也就可以计算出表达式的值.比如,现在有一个整数数列:17,5, ...
- UVA.10325 The Lottery (组合数学 容斥原理 二进制枚举)
UVA.10325 The Lottery (组合数学 容斥原理) 题意分析 首先给出一个数n,然后给出m个数字(m<=15),在[1-n]之间,依次删除给出m个数字的倍数,求最后在[1-n]之 ...
- rsync同步公网yum源搭建本地yum仓库
镜像同步公网yum源上游yum源必须要支持rsync协议,否则不能使用rsync进行同步. centos源:rsync://rsync.mirrors.ustc.edu.cn/centos/ epel ...