Java Web 网络商城案例演示四、(向邮箱发送信息功能的实现)邮箱服务器的搭建,java Web发送邮件
发布日期:2021-06-29 15:01:10 浏览次数:2 分类:技术文章

本文共 6605 字,大约阅读时间需要 22 分钟。

Java Web 网络商城案例演示四、(向邮箱发送信息功能的实现)邮箱服务器的搭建,java Web发送邮件

电子邮箱

概念

邮件服务器:

公司服务器上安装软件,管理各个邮箱账号中的邮件 接收/发送
电子邮箱:
各个账户在服务器上开辟的一段空间
邮件协议:发送SMTP 接收:pop3/pop/imap
作用:约定了邮件在网络当中传输符格式

搭建邮件服务器

安装eyoumailserversetup.exe

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新账号—>
在这里插入图片描述
在这里插入图片描述
配置FoxMail6.5客户端

双击foxmail客户端===>安装===>

在这里插入图片描述
在这里插入图片描述
QQ邮箱的客户端:
百度搜索QQ邮件客户端配置:
Qq邮箱里: 开启授权码:
在这里插入图片描述
在这里插入图片描述

3、发送邮件的流程

在这里插入图片描述

Java Web发送邮件
在WEN-INF 下的bil保证导入
mail.jar
在这里插入图片描述
运行测试邮箱代码

package cn.itzheng.store.test;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message;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;public class TestEmail {
public static void main(String[] args) throws Exception {
// 0.1 服务器的设置 Properties props = new Properties(); //props.setProperty("mail.host", "smtp.126.com"); //props.setProperty("mail.smtp.auth", "true"); // 0.2 账号和密码 Authenticator authenticator = new Authenticator() {
@Override protected PasswordAuthentication getPasswordAuthentication() {
// 126账号和密码(模拟账号,需要自己注册) //return new PasswordAuthentication("itcast", "123456"); return new PasswordAuthentication("admin@store.com", "admin"); } }; // 1 与126服务器建立连接:Session Session session = Session.getDefaultInstance(props, authenticator); // 2 编写邮件:Message Message message = new MimeMessage(session); // 2.1 发件人(模拟账号) //message.setFrom(new InternetAddress("itcast@126.com")); message.setFrom(new InternetAddress("admin@store.com")); // 2.2 收件人 , to:收件人 , cc :抄送,bcc:暗送(密送)。(模拟账号) message.setRecipient(RecipientType.TO, new InternetAddress("aaa@store.com")); // 2.3 主题 message.setSubject("这是我们得第一份邮件"); // 2.4 内容 message.setContent("哈哈,您到我的商城注册了。", "text/html;charset=UTF-8"); // 3 将消息进行发送:Transport Transport.send(message); System.out.println("OKOKOK"); }}

运行测试代码可能会报错

修复错误
邮箱服务器搭建成功

java Web发送邮件

发送邮箱源代码

package cn.itzheng.store.web.servlet;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanutils.ConvertUtils;import org.apache.commons.beanutils.converters.DateConverter;import cn.itzheng.store.domain.User;import cn.itzheng.store.service.UserService;import cn.itzheng.store.service.serviceImpl.UserServiceImpl;import cn.itzheng.store.utils.MailUtils;import cn.itzheng.store.utils.MyBeanUtils;import cn.itzheng.store.utils.UUIDUtils;import cn.itzheng.store.web.base.BaseServlet;/** * Servlet implementation class UserServlet */public class UserServlet extends BaseServlet {
// jsp的method 会统一发现这里的,并发送到父类的service 方法当中 // 先执行父类的init方法和service方法,之后在执行该方法, // BaseServlet通过this.getclass的方式获取到该类字节码文件名获取到该方法而执行该方法(执行什么方法由jsp页面传入的method来决定) public String registUI(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub return "/jsp/register.jsp"; } // userRegist public String userRegist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, Exception {
// 接收业务注册功能 // 遍历map Map
map = request.getParameterMap();// 获取页面上的键值对数据 User user = new User(); user.setUid(UUIDUtils.getId()); user.setState(0); user.setCode(UUIDUtils.getCode()); MyBeanUtils.populate(user, map);// 调用MyBeanUtils的populate静态方法 System.out.println(user); /* * // 1_创建时间类型的转换器 DateConverter dt = new DateConverter();// * 用来设置BeanUtils当中对应的获得时间的格式 // 2_设置转换的格式 dt.setPattern("yyyy-MM-dd"); // * 3_注册转换器 ConvertUtils.register(dt, java.util.Date.class); * BeanUtils.populate(user, map);//将map当中的数据通过populate放入到user * System.out.println(user); * Set
keySet = map.keySet();// 将map当中的key集合放入到keySet的set集合当中 * Iterator
iterator = keySet.iterator(); while (iterator.hasNext()) { * String str = iterator.next();// 获取到每一个key System.out.println(str); String[] * strs = map.get(str);// 通过键获取到每一个值 for (String string : strs) { * System.out.println(string); } System.out.println(); * } */ // 调用业务注册功能 UserService userservice = new UserServiceImpl(); try {
userservice.userRegist(user); // 注册注册成功,向用户邮箱发送信息,跳转到提示页面 // 发送邮件 // MailUtils.sendMail(user.getEmail(), user.getCode()); request.setAttribute("msg", "用户注册成功,请激活"); } catch (Exception e) {
// 注册失败,跳转到提示页面 request.setAttribute("msg", "用户注册失败,请重新注册"); } return "/jsp/info.jsp"; }}

工具类源代码

package cn.itzheng.store.utils;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message;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 javax.mail.internet.MimeMessage.RecipientType;public class MailUtils {
public static void sendMail(String email, String emailMsg) throws AddressException, MessagingException {
// 1.创建一个程序与邮件服务器会话对象 Session Properties props = new Properties(); //设置发送的协议 //props.setProperty("mail.transport.protocol", "SMTP"); //设置发送邮件的服务器 //props.setProperty("mail.host", "smtp.126.com"); //props.setProperty("mail.smtp.auth", "true");// 指定验证为true // 创建验证器 Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//设置发送人的帐号和密码 return new PasswordAuthentication("admin@store.com", "admin"); } }; Session session = Session.getInstance(props, auth); // 2.创建一个Message,它相当于是邮件内容 Message message = new MimeMessage(session); //设置发送者 message.setFrom(new InternetAddress("admin@store.com")); //设置发送方式与接收者 message.setRecipient(RecipientType.TO, new InternetAddress(email)); //设置邮件主题 message.setSubject("用户激活"); // message.setText("这是一封激活邮件,请点击"); String url="http://localhost:8080/store_v5/UserServlet?method=active&code="+emailMsg; String content="

来自购物天堂的激活邮件!激活请点击以下链接!

"+url+"

"; //设置邮件内容 message.setContent(content, "text/html;charset=utf-8"); // 3.创建 Transport用于将邮件发送 Transport.send(message); } public static void main(String[] args) throws AddressException, MessagingException {
MailUtils.sendMail("aaa@store.com", "123456789");//接收者的账号和激活码 }}

转载地址:https://code100.blog.csdn.net/article/details/104864319 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:javaWeb发送邮件报错,JAVAEmail工具错误java.lang.ClassNotFoundException: javax.activation.DataSource
下一篇:Java Web 网络商城案例演示三、(注册页面功能实现)

发表评论

最新留言

不错!
[***.144.177.141]2024年04月22日 17时25分46秒