java如何实现发送邮箱
package cn.buy.util;
import java.security.GeneralSecurityException;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.mail.util.MailSSLSocketFactory;
import cn.buy.entity.User;
public class Sendmail extends Thread {
private User user = null;
public Sendmail(User user) {
this.user = user;
}
@Override
public void run() {
// 跟smtp服务器建立一个连接
Properties p = new Properties();
// 设置邮件服务器主机名
p.setProperty("mail.host", "smtp.qq.com");// 指定邮件服务器,默认端口 25
// 发送服务器需要身份验证
p.setProperty("mail.smtp.auth", "true");// 要采用指定用户名密码的方式去认证
// 发送邮件协议名称
p.setProperty("mail.transport.protocol", "smtp");
// 开启SSL加密,否则会失败
MailSSLSocketFactory sf = null;
try {
sf = new MailSSLSocketFactory();
} catch (GeneralSecurityException e1) {
e1.printStackTrace();
}
sf.setTrustAllHosts(true);
p.put("mail.smtp.ssl.enable", "true");
p.put("mail.smtp.ssl.socketFactory", sf);
// 开启debug调试,以便在控制台查看
// session.setDebug(true);也可以这样设置
// p.setProperty("mail.debug", "true");
// 创建session
Session session = Session.getDefaultInstance(p, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// 用户名可以用QQ账号也可以用邮箱的别名
PasswordAuthentication pa = new PasswordAuthentication(
"652459753@qq.com", "mftgsonsmrozbcbh");
// 后面的字符是授权码,用qq密码不行!!
return pa;
}
});
session.setDebug(true);// 设置打开调试状态
try {
// 声明一个Message对象(代表一封邮件),从session中创建
MimeMessage msg = new MimeMessage(session);
// 邮件信息封装
// 1发件人
msg.setFrom(new InternetAddress("652459753@qq.com"));
// 2收件人
msg.setRecipient(RecipientType.TO, new InternetAddress(user.getOB_EMAIL()));
// 3邮件内容:主题、内容
msg.setSubject("邮箱注册橙橙网通知:欢迎注册***账号,请点击链接激活账号");
// StringBuilder是线程不安全的,但是速度快,这里因为只会有这个线程来访问,所以可以用这个
StringBuilder sbd = new StringBuilder();
sbd.append("橙橙网:<br/>欢迎!请确认此邮件地址以激活您的账号。<br/>");
sbd.append("<font color='red'><a href='http://192.168.19.62:8080/Orange_buy/home/register.jsp' target='_blank'");
sbd.append(">立即激活</a></font><br/>");
sbd.append("或者点击下面链接:<br/>");
sbd.append("http://192.168.19.62:8080/Orange_buy/home/register.jsp <br/>");
sbd.append("这是一封自动发送的邮件;如果您并未要求但收到这封信件,您不需要进行任何操作。");
msg.setContent(sbd.toString(), "text/html;charset=utf-8");// 发html格式的文本
// 发送动作
Transport.send(msg); System.out.println("给" + user.getOB_EMAIL() + "发送邮件成功。");
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
第一步:我们需要在qq邮箱设置授权码:在设置>账户>


然后,servlet
//收集参数
String pwd = request.getParameter("pwd");
String emails = request.getParameter("email");
if(user!=null){
//发送激活邮件
//这里有一个小知识点,必须新开一个线程来发邮件,不能把发邮件的动作写在这里
//如果写在这里,用户的前台显示会等待过长时间,不好!
new Sendmail(user).start();
System.out.println("您已经注册成功,请去邮箱激活账号后再进行登录,如果没有收到邮件,请稍等!<br/>");
}else{
System.out.println("很抱歉,服务器繁忙,注册失败,需要重新注册!");
}
//添加邮箱
user.setOB_EMAIL(emails);
//把MD5加密的放到实体类中去
user.setOB_PASSWORD(md5.getkeyBeanofStr(pwd));
//类型
user.setOB_TYPE(1);
try {
int emailadd = service.EmailAdd(user);
if (emailadd>0) {
request.getRequestDispatcher("/home/Loginsuccess.jsp").forward(request, response);
}
} catch (Exception e) { e.printStackTrace();
}
/**
*用户的登录
*/
java如何实现发送邮箱的更多相关文章
- java代码发送邮箱验证码与qq邮箱smtp服务
发送邮箱的类封装,在此之前需要一个jar包 javax.mail.jar 下载链接https://github.com/javaee/javamail/releases/download/JAVAM ...
- Java实现发送邮箱验证码/注册验证链接
本文以163邮箱为例 1.准备(邮箱账号,邮箱必须设置POP3/SMTP/IMAP,设置步骤如下:) >>步骤:1 开启授权码服务 >>步骤:2 手机获取验证码 >> ...
- java mail使用qq邮箱发邮件的配置方法
最近自己折腾了下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 2.foxmail设置(由于我要利用它收邮件) 2. ...
- 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】
一.邮件发送 1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示. SMTP协议使用的端口号:25 rfc821详细记载了该协议的相关信息 (1)使用telnet发送邮件(使用12 ...
- 用java实现邮件发送验证码
java实现邮件发送验证码 建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SMTP服务没弄好.所以建议注册个别的邮箱,我就申请了个网易163邮箱瞬 ...
- web基础---->java邮件的发送
这里记录一下关于java邮件发送代码的编写.你在我身边也好,在天边也罢,想到世界的角落有一个你,觉得整个世界也变得温柔安定了. java邮件的发送 一.直接贴出代码,如下: package com.c ...
- 发送邮箱验证码、session校验
本篇主要描述“发送邮箱验证码.session校验”相关前(html\js)后(java)台代码,业务逻辑示例,闲话少诉,直接上代码. 1.引入的jar包是mail-1.4.jar 2.java底层发送 ...
- 纯java实现邮件发送服务(亲测好用)
今天自己测试了一下用java代码实现发送有限的服务,非常简单.直接贴代码: import com.sun.mail.util.MailSSLSocketFactory; import javax.ma ...
- java mail邮件发送(带附件) 支持SSL
java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.ut ...
随机推荐
- 【翻译】Scriban README 文本模板语言和.NET引擎
scriban Scriban是一种快速.强大.安全和轻量级的文本模板语言和.NET引擎,具有解析liquid模板的兼容模式 Github https://github.com/lunet-io/sc ...
- 拿下Netty这座城,从现在开始!
你好,我是彤哥,技术公号主"彤哥读源码"的运营者. 其实,我刚学习Netty的时候,也是很迷茫的,直到有一天,一个同事收到了阿里的offer,他要去阿里做中台了,临走前他偷偷地告诉 ...
- Python编程入门(第3版)|百度网盘免费下载|零基础入门学习资料
百度网盘免费下载:Python编程入门(第3版) 提取码:rsd7 目录 · · · · · · 第1章 编程简介 11.1 Python语言 21.2 Python适合用于做什么 31.3 程序员 ...
- netcore RabbitMQ入门--win10开发环境
安装 1.进入rabbitMQ官网下载安装包 2.点击安装包安装的时候会提示需要先装erlang 点击是会自动跳转到erlang的下载界面如果没有跳转可以直接点击这里下载,根据系统选择下载包 下载完之 ...
- 利用updatexml()报错注入mysql
基本介绍一下updatexml() updatexml(XML_document, XPath_string, new_value) XML_document是文档对象的名称 XPath_string ...
- Java基础知识_内存
前述:利用一段较为充足暑假时间,对以前的Java学习进行一个系统性的回顾,对于部分知识点进行记录和积累. Java中的内存 一 Java中的内存划分: Java中内存主要划分为五部分 栈(Stack) ...
- Git常用命令及方法大全
下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 本地 ...
- 让表单input等文本框为只读不可编辑的方法-转
有时候,我们希望表单中的文本框是只读的,让用户不能修改其中的信息,如使<input type="text" name="input1" value=&qu ...
- 我是如何从零开始自学转行IT并进入世界500强实现薪资翻倍?
本部分内容对应视频链接. 熟悉我的朋友应该知道,我本科及硕士期间所学的专业都是机械相关,毕业两年之后才从零开始自学转行成为一名程序员.当时我写了一篇文章,介绍我的转行经历,很多小伙伴因为我的这篇文章, ...
- 性能分析(2)- 应用程序 CPU 使用率过高案例
性能分析小案例系列,可以通过下面链接查看哦 https://www.cnblogs.com/poloyy/category/1814570.html 系统架构背景 其中一台用作 Web 服务器,来模拟 ...