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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Java实现邮件传输(一)简单邮件的发送 -> 正文阅读

[系统运维]Java实现邮件传输(一)简单邮件的发送

作者:token keyword

在这里插入图片描述

邮件传输的原理分析

做一个东西一定要分析原理,建立架构,再编写代码
在网络上实现邮件传输需要邮件服务器

假设有两个人,张三李四,他们有两台不一样的电脑,张三想给李四发一封邮件

中间有一个基站来帮助他们通信,通过网络传输

他们有两个真实的邮箱,不同的邮箱有自己的服务器

基站先把张三发出的邮件存到网易服务器里,服务器通过基站找到qq的服务器,放入

李四通过电脑访问qq服务器,从中取出信件

发送邮件:SMTP协议

接收邮件:POP3协议

服务器内部有一个POP3接收,还有一个SMTP发送,下面还有一个文件系统FileSystem,每个账户有一定的空间

注册一个账号相当于在文件系统中申请一个地址
在这里插入图片描述

JAVA实现过程

使用Java发送E-mail十分简单,但是首先你应该准备JavaMail API和Java Activation Framework

得到两个jar包

  • mail.jar
  • activation.jar
    在这里插入图片描述
    MainlDemo01
package com.lding;

import com.sun.mail.util.MailSSLSocketFactory;

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

/**
 * @program: FileTransport
 * @description:
 * @author: 王丁
 * @date: 2021-11-13 10:41
 **/
public class MailDemo01 {
    public static void main(String[] args) throws GeneralSecurityException, MessagingException {
        Properties prop=new Properties();
        prop.setProperty("mail.host","smtp.qq.com");//设置qq邮件服务器
        prop.setProperty("mail.transport.protocol","smtp");//邮箱发送协议
        prop.setProperty("mail.smtp.auth","true");//需要验证用户名密码
        //关于qq邮箱,还要设置SSL加密,加上以下代码即可
        MailSSLSocketFactory 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("邮箱","验证码");
            }
        });
        session.setDebug(true);
        //2、通过session得到transport对象
        Transport ts=session.getTransport();
        //3、使用邮箱的用户名和授权码连上邮件服务器
        ts.connect("smtp.qq.com","邮箱","验证码");
        //4、创建邮件:写邮件
        //注意需要传递Session
        MimeMessage message=new MimeMessage(session);
        //指明邮件的发件人
        message.setFrom(new InternetAddress("邮箱"));
        //指明邮件的发件人,现在发件人和收件人是一样的,那就是自己给自己发
        message.setRecipient(Message.RecipientType.TO,new InternetAddress("邮箱"));
        //邮件的标题
        message.setSubject("你好世界!");
        //邮件的文本内容
        message.setContent("<h1 style='color:red'>你好啊!</h1>","text/html;charset=UTF-8");
        //5、发送邮件
        ts.sendMessage(message,message.getAllRecipients());
        //6.关闭连接
        ts.close();

    }
}

运行结果
在这里插入图片描述
在这里插入图片描述
实现之前我们还需要开启qq邮箱的POP3/SMTP服务才可以实现
在这里插入图片描述

如果对您有帮助,免费的赞点一个 感谢🙏~~~

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:26:30  更:2021-12-03 13:26:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:49:50-

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