JavaWeb实现简单用户发送邮件

 更新时间:2021年08月15日 12:36:52   作者:笑-_-笑  
这篇文章主要为大家详细介绍了JavaWeb实现简单用户发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在实现用户发送邮件之前,我们先对电子邮箱的基本概念做一些了解。

一、电子邮件

1. 邮件服务器

1.要在 Internet 上提供电子邮件功能,必须有专门的电子邮件服务器。
例如:现在 Internet 很多 提供邮件服务的厂商:sina、sohu、163 等等他们都有自己的邮件服务器。
2.这些服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投 递到邮件接收者的电子邮箱中。
3.邮件服务器,按照提供的服务类型,可以分为发送邮件的服务器我接收邮件的服务器。

2. 电子邮箱

电子邮箱(E-mail 地址)的获得需要在邮件服务器上进行申请 ,确切地说,电子邮箱其实 就是用户在邮件服务器上申请的一个帐户。用户在邮件服务器上申请了一个帐号后,邮件 服务器就会为这个帐号分配一定的空间,用户从而可以使用这个帐号以及空间,发送电子 邮件和保存别人发送过来的电子邮件。

3. 邮件协议

SMTP 协议-发邮件协议

a. 全称为 Simple Mail Transfer Protoco(l 简单邮件传输协议),它定义了邮件客户端软件与 SMTP 服务器之间、以及两台 SMTP 服务器之间的通讯规则。
b. 端口号:25

POP3 协议-收邮件协议

a. 全称为 Post Office Protocol(邮局协议),它定义了邮件客户端软件与 POP3 服务器的通讯规则。
b. 端口号:110

二、 发送邮件

1. 发送邮件的流程

2. 代码实现

package com.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", "admin@store.com");
   }
  };

  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.setContent("哈哈,你到我的商城注册了", "text/html;charset=UTF-8");

  // 3.创建Transport,用于将邮件发送
  Transport.send(message);
 }
 public static void main(String[] args) throws AddressException, MessagingException {
  MailUtils.sendMail("aaa@store.com", "abcdefg");
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot接口参数的默认值与必要性最佳实践记录

    SpringBoot接口参数的默认值与必要性最佳实践记录

    这篇文章主要介绍了SpringBoot接口参数的默认值与必要性,通过合理设置接口参数的默认值和必要性,我们可以创建出既健壮又灵活的 RESTful API,需要的朋友可以参考下
    2024-08-08
  • maven引入kabeja依赖的实现步骤

    maven引入kabeja依赖的实现步骤

    本文主要介绍了maven引入kabeja依赖的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • JAVA中使用openoffice将Excel转PDF再转图片功能的实现代码

    JAVA中使用openoffice将Excel转PDF再转图片功能的实现代码

    这篇文章主要介绍了JAVA中使用openoffice将Excel转PDF再转图片功能实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Java初学者常问的问题(推荐)

    Java初学者常问的问题(推荐)

    本文介绍一些Java初学者常问的问题,很多朋友对可以用%除以一个小数吗? a += b 和 a = a + b 的效果有区别吗? 声明一个数组为什么需要花费大量时间? 为什么Java库不用随机pivot方式的快速排序?等等一系列问题有疑惑,下面就通过本文给大家详细介绍下
    2017-03-03
  • SpringBoot项目的测试类实例解析

    SpringBoot项目的测试类实例解析

    这篇文章主要介绍了SpringBoot项目的测试类实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • jmeter正则表达式实例详解

    jmeter正则表达式实例详解

    正则表达式就是记录文本规则的代码。学习正则表达式最好就是从实例下手。下面我们通过实例代码给大家介绍jmeter正则表达式的相关知识,感兴趣的朋友一起看看吧
    2021-12-12
  • spring常用注解开发一个RESTful接口示例

    spring常用注解开发一个RESTful接口示例

    这篇文章主要为大家介绍了使用spring常用注解开发一个RESTful接口示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • JdbcTemplate方法介绍与增删改查操作实现

    JdbcTemplate方法介绍与增删改查操作实现

    这篇文章主要给大家介绍了关于JdbcTemplate方法与增删改查操作实现的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用JdbcTemplate具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • SpringMVC ajax请求的处理方法介绍

    SpringMVC ajax请求的处理方法介绍

    Ajax即异步的 JavaScript和XML,是一种无需重新加载整个网页的情况下,能够更新部分模块的网页技术,下面这篇文章主要给大家介绍了关于SpringMVC Ajax请求的处理,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Java自动添加重写的toString方法详解

    Java自动添加重写的toString方法详解

    在本篇文章里小编给大家整理了关于Java自动添加重写的toString方法总结,需要的朋友们学习下。
    2019-07-07

最新评论