IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 注册成功发送一份邮件小实例 -> 正文阅读

[移动开发]注册成功发送一份邮件小实例

注册页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/doregister" method="post">
   用户名: <input type="text" name="name"><br>
    年龄:<input type="text" name="age"><br>
    email:<input type="text" name="email"><br>
    <input type="submit" value="注册">
</form>
</body>
</html>

用户pojo

package pojo;

import jdk.nashorn.internal.objects.annotations.Constructor;


public class User {
    private String name;
    private int age;
    private String email;

    public User() {
    }

    public User(String name, int age, String email) {
        this.name = name;
        this.age = age;
        this.email = email;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "user{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                '}';
    }
}

发送邮件utill

package mailUtill;

import com.sun.mail.util.MailSSLSocketFactory;
import pojo.User;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;


//用多线程调优,防止多人在注册网站时响应过慢出现空白
//实现发邮件为一条线程,不干扰到jsp这边的页面响应
public class sendMail extends Thread{
//    把user用户添加进来
    private User user;
    public sendMail(User user){
        this.user=user;
    }
    public void run() {
        Properties prop =null;
//    qq邮箱需设置ssl加密
        MailSSLSocketFactory sf = null;
        try {
            prop = new Properties();
//    设置QQ邮箱服务器
            prop.setProperty("mail.host","smtp.qq.com");
//    邮件发送协议
            prop.setProperty("mail.transport.protocol","smtp");
//    需要验证用户密码
            prop.setProperty("mail.stmp.auth","true");

            sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
            prop.put("mail.smtp.ssl.enable","true");
            prop.put("mail.smtp.ssl.socketFactory",sf);

//  使用javamail发送邮箱的5个步骤
/*1,创建定义整个应用程序所需的环境信息的session对象
qq才有,其他邮箱没有
*/
            Session session = Session.getDefaultInstance(prop, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
//            发件人邮件用户名、授权码
                    return new PasswordAuthentication("117513@qq.com", "邮箱序列号");
                }
            });
            //    debug邮箱发送过程
            session.setDebug(true);

//    通过session得到transport对象
            Transport ts = session.getTransport();

//    使用邮箱的用户名和授权码连上邮件服务器
            ts.connect("smtp.qq.com","117513@qq.com","邮箱序列号");
            /

//    创建邮件
            MimeMessage message = new MimeMessage(session);

//    指明邮件发件人
            message.setFrom(new InternetAddress("1175135@qq.com"));
//    指明邮件收件人  (收件人邮箱从user处获取)
            message.setRecipient(Message.RecipientType.TO,new InternetAddress(user.getEmail()));
            //邮件的标题
            message.setSubject("注册成功");
//    邮件的文本内容
            message.setContent("用户名为"+user.getName()+"您已成功注册了我们的网站","text/html;charset=UTF-8");




//    发送邮件
            ts.sendMessage(message,message.getAllRecipients());
//    关闭连接
            ts.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

注册表单处理

package com.nn.servlet;

import mailUtill.sendMail;
import pojo.User;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class doRegister extends HttpServlet {


    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        从前端获取值
        String name = req.getParameter("name");
        String age = req.getParameter("age");
        String email = req.getParameter("email");
//        把值设置给user对象
        User user = new User(name, new Integer(age), email);
//        new一个发送邮件的对象,并把已经赋值完的user传给它
        sendMail mail = new sendMail(user);
//        启动发邮件的线程
        mail.start();
//        设置一个消息属性
        req.setAttribute("meg","您已注册成功,待会您将会收到一封注册成功的邮件");
//        转发到消息显示页面
        req.getRequestDispatcher("info.jsp").forward(req,resp);
    }
}

消息页面

<%--
  Created by IntelliJ IDEA.
  User: 11751
  Date: 2022-4-23 , 0023
  Time: 16:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册成功</title>
</head>
<body>
${meg}
</body>
</html>

配置

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">
<servlet>
  <servlet-name>doregister</servlet-name>
  <servlet-class>com.nn.servlet.doRegister</servlet-class>
</servlet>
  <servlet-mapping>
    <servlet-name>doregister</servlet-name>
    <url-pattern>/doregister</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>register.jsp</welcome-file>
  </welcome-file-list>
</web-app>
<dependencies>
  <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
  <dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
  <dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/javax.activation/activation -->
  <dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
  </dependency>

  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.3</version>
  </dependency>
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
  </dependency>
</dependencies>

在这里插入图片描述
在这里插入图片描述

获取邮箱序列号

在这里插入图片描述
在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:52:02  更:2022-04-26 11:54:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/31 11:51:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码