SMTP协议模拟发送邮件(java)

Java实现批量发送邮件 Java代码实现公司批量给客户发送邮件 1.新建1个Java项目 2.在项目下新建1个文件夹 lib 用于存放jar包 3.导入jar包,然后选中三个包,右键Add as library 导入jar包(复制这三个压缩包 --> 回到idea --> 点击lib --> 粘贴) Add as library 成功后: 4.新建一个Test类 代码: package com; import org.apache.commons.mail.EmailException; 阅读详情

简述

c语言,java和python都有封装smtp相关邮件协议。直接拿来用就完了。在java里要导入两个包。官网上不去可以到菜鸟教程去下。
https://www.runoob.com/java/java-sending-email.html
里面有详细的讲述。
完了怎么把两个第三方包加入项目呢?

导入jar

如果是idea的话就去file->project construction->modules里面找到导入dictionary或jar的选项,把包含你的jar的文件夹(导入文件夹下所有东西)或jar文件就完了。弄好在项目资源管理器的拓展包里能看到。

代码

package Send;
import com.sun.mail.util.MailSSLSocketFactory;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.security.GeneralSecurityException;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.swing.*;
import java.awt.*;

public class Main extends JFrame implements ActionListener, FocusListener {
    JTextField rcver;
    JTextField header;
    JPanel info;
    JTextField mainText;
    JPanel text;
    JButton send;
    public void Send(){
        try {
            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个步骤

            //创建定义整个应用程序所需的环境信息的 Session 对象
            Session session = Session.getDefaultInstance(prop, new Authenticator() {
                public PasswordAuthentication getPasswordAuthentication() {
                //发件人邮件用户名、授权码
                return new PasswordAuthentication(
                        "110@qq.com", "woc");
                }
            });
            //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
            session.setDebug(true);
            //2、通过session得到transport对象
            Transport ts = session.getTransport();
            //3、使用邮箱的用户名和授权码连上邮件服务器
            ts.connect(
                    "smtp.qq.com", "110@qq.com", "woc");
            //4、创建邮件
            //创建邮件对象
            MimeMessage message = new MimeMessage(session);
            //指明邮件的发件人
            message.setFrom(new InternetAddress("110@qq.com"));
            //指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
            message.setRecipient(Message.RecipientType.TO,
                    new InternetAddress(rcver.getText()));
            //邮件的标题
            message.setSubject(header.getText());
            //邮件的文本内容
            message.setContent(mainText.getText(), "text/html;charset=UTF-8");
            //5、发送邮件
            ts.sendMessage(message, message.getAllRecipients());

            ts.close();
        } catch (GeneralSecurityException e) {
            e.printStackTrace();
        } catch (AddressException e) {
            e.printStackTrace();
        } catch (NoSuchProviderException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
    public void initPanel(){
        header=new JTextField("title");
        header.setColumns(20);
        header.addFocusListener(this);
        rcver=new JTextField("receiver");
        rcver.setColumns(20);
        rcver.addFocusListener(this);
        info =new JPanel();
        info.setPreferredSize(new Dimension(500, 50));
        info.setBackground(Color.white);
        info.setBorder(BorderFactory.createTitledBorder("header"));
        info.add(header);
        info.add(rcver);

        mainText=new JTextField();
        mainText.setColumns(40);
        mainText.addFocusListener(this);
        text=new JPanel();
        text.setPreferredSize(new Dimension(500, 50));
        text.setBackground(Color.white);
        text.setBorder(BorderFactory.createTitledBorder("Main Text"));
        text.add(mainText);

        send=new JButton("send");
        send.addActionListener(this);
    }
    public void makeJFrame(){
        this.setTitle("MyEmail");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLayout(new FlowLayout());
        this.add(info);
        this.add(text);
        this.add(send);
        this.setVisible(true);
        this.setSize(520,200);
    }
    public Main(){
        initPanel();
        makeJFrame();
    }
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==send){
            Send();
        }
    }
    public void focusGained(FocusEvent e) {
        Color myGray=new Color(241,243,244);
        if (e.getSource()==rcver) {rcver.setText("");rcver.setBackground(myGray);}
        else if (e.getSource()==header) {header.setText("");header.setBackground(myGray);}
        else if (e.getSource()==mainText){ mainText.setText("");mainText.setBackground(myGray);}
    }
    public void focusLost(FocusEvent e) {
        if (e.getSource()==rcver) {rcver.setText(rcver.getText());rcver.setBackground(Color.white);}
        else if (e.getSource()==header) {header.setText(header.getText());header.setBackground(Color.white);}
        else if (e.getSource()==mainText) {mainText.setText(mainText.getText());mainText.setBackground(Color.white);}
    }
    public static void main(String[] args) throws Exception{
        new Main();
    }
}

服务器交互过程

在这里插入图片描述

学上一招,使用 telnet 调试邮件发送 使用 java 发送邮件时遇到问题,尝试使用 telnet 调试发送邮件,并最终排查到根本原因! 阅读详情

相关推荐

模拟qq邮箱 网站一键发送邮件

该项目为自己用idea编辑器写的一个模拟邮箱发送的java web项目,借助qq邮箱的授权码,实现自动发邮件功能,适合于初学者,如果积分不够可以私信我。

模拟本地邮件发送和通过代码发送邮件

首先在易邮服务器上配置域名,并且设置两个账号 然后到客户端上面将邮件账号设置进去 1.1)给易游服务器设置域名 1.2)创建账号 2.1)客户端添加账号 通过代码发送邮件 package cn.itcast.utils; import java.util.Properties; import javax.mail.Authenticator;...

郭叶兵的博客 1702

模拟163完整发送邮件

完整的,模拟163邮箱,实现发送邮件的功能,包括背景图片,上传多个附件,以及身份验证,测试通过!

使用telnet命令模拟发送邮件

步骤 一:使用telnet远程登陆aliyun邮箱服务器 在cmd命令行模式下输入:telnet smtp.aliyun.com 25 出现下图所示 二:测试能否与邮箱服务器正常通信 三:输入本人邮箱账号密码 在命令行模式下邮箱账号密码必须是base64格式的编码,例如: 邮箱账号:abc@aliyun.com 邮箱密码:abcdefg 输入的应是: YWJjQGFsaXl1bi5jb20= YWJjZGVmZw== 下图是对字符串进行base64编码的方法: 输入结果如下所示表示成功:

weixin_44276313的博客 2478

基于SMTP协议的模拟邮件系统(java代码实现)

原文链接:https://blog.youkuaiyun.com/qq_37508554/article/details/88874243 自己写的利用java实现的基于SMTP协议的模拟邮件系统,能实现邮件的收发操作,完整代码,仅需配置邮箱账户和授权密码即可使用(代码中利用java swing渲染界面)

基于smtp发送邮件

实现基于SMTP的邮件发送软件,SMTP服务器必须没有身份验证

发送邮件(用代码模拟邮箱服务器发送邮件)

各位大佬多多指教,欢迎提问

continue_v的博客 2994

SMTP测试工具

有关于各类电脑服务器平台的SMTP测试工具

python 模拟126邮箱发送邮件

用Python发送126邮件今天想做个自动化邮件提醒的功能,最近刚好在学习python,都说python那么强大,想试一下python能否搞定,搜一下资料,果真可以,而且又简单通俗易懂from email.mail.text import MIMEText import smtplib#发件人列表 to_list=["zhangsan@163.com", "lisi@qq.com"] #对于大型的

zniahfag的博客 9559

别再买模块了!手把手教你用FT232RL-REEL芯片,从零设计一个USB转串口电路板

本文详细介绍了如何使用FT232RL-REEL芯片从零设计USB转串口电路板,涵盖核心器件选型、原理图设计、PCB布局布线及焊接调试等关键步骤。通过实战案例和性能对比,展示自制电路板在成本、性能和可靠性上的优势,特别适合硬件爱好者和工程师参考。

weixin_30561425的博客 432

ANSYS APDL实战:手把手教你搞定电磁-热耦合分析(附完整命令流)

本文通过一个工业感应加热线圈的实战案例,手把手教你使用ANSYS APDL完成电磁-热耦合分析。内容涵盖从几何建模、材料定义、网格划分到加载求解及后处理的完整流程,重点讲解了使用PLANE13单元进行双向耦合场分析的方法与命令流调试技巧,助力工程师快速掌握这一核心仿真能力。

weixin_29284201的博客 422

基于SMTP协议的模拟邮件系统(计算机网络课程设计)

一款基于smtp协议的模拟邮件系统,感兴趣就点进来看看叭!

白洞,白色的明天在等着我们 6118

关于笔记本测试的面试准备 2021-10-11

** 关于笔记本测试的面试准备 ** 一、根据JD分析,工作内容以软测为主,硬件知识需要了解一点。 以下几个问题为主要: 1.了解VGA、audio、wlan、bt、TP 、camera等driver,BIOS和image测试。 2.了解性能测试工具?压力测试相关设置? 3.了解preload流程? 二、解决 VGA: video graphics array ——笔记本上外接显示器的接口。 【VGA接口兼容性更强,但是不支持高分辨率。 支持高分辨率:HDMI、DIV、TP】 bt【Bluetooth

xw_009的博客 1866

基于Java的SMTP协议邮件发送模拟系统

目录 1. 原理分析 2. 前端页面 3. 数据库设计 4. 后端数据处理 5. 参考文献 6. 注意事项 1. 原理分析 SMTP协议 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件 的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件 ...

chtw的博客 7289

STM32 HAL库串口DMA接收不定长数据的两种实战方法:IDLE中断与超时管理详解

本文详细解析了STM32 HAL库中串口DMA接收不定长数据的两种实战方法:IDLE中断与超时管理。通过对比分析两种方案的硬件要求、响应速度和适用场景,为嵌入式开发者提供了高效可靠的串口通信解决方案,特别适用于智能家居、传感器网络等需要处理不定长数据包的应用场景。

weixin_30954265的博客 471

智能气象站:ESP32驱动的心知天气数据可视化实践

本文详细介绍了基于ESP32微控制器和心知天气API构建智能气象站的完整实践。通过Arduino开发环境,实现天气数据的获取、JSON解析与OLED屏可视化展示,涵盖硬件连接、API配置、低功耗优化及部署问题排查,为物联网开发者提供实用指南。

jump7的博客 210

FakeSMTP - 在本地运行的电子邮件服务器模拟器

FakeSMTP - 在本地运行的电子邮件服务器模拟器 如果你在开发需要发送电子邮件的应用程序或网站,那么FakeSMTP可能是一个有用的工具。这是一个免费的开源应用程序,可以在你的本地计算机上运行一个简单的电子邮件服务器模拟器。 什么是FakeSMTP? FakeSMTP是一个轻量级的Java应用程序,它可以让你在本地计算机上运行一个电子邮件服务器。它会捕获所有发送到该服务器的邮件,并将它们显示...

gitblog_00077的博客 981

SA8295P QNX主机上电启动流程分析

嵌入式系统的启动过程对于确保系统正常运行至关重要。本文将详细分析SA8295P芯片在QNX主机上的上电启动流程,并提供相应的源代码示例。嵌入式系统的启动过程对于确保系统正常运行至关重要。本文将详细分析SA8295P芯片在QNX主机上的上电启动流程,并提供相应的源代码示例。以下是一个SA8295P QNX主机上电启动流程分析。

CodeMaven的博客 1231

利用java工具实现发送Email

电子邮件出现之后,类似的也是模仿这个原理,不过不是具体的纸质信件而是通过从发送方用户的电脑端的邮件软件,发送到邮件服务器上,经过若干个邮件服务器的中转,到达接收方用户的电脑端软件,接收方通过登录相关的Email软件来查看邮件内容。通过Session的getInstance()方法创建session实例,传入保存SMTP配置信息的Properties对象p,以及创建一个新的Authenticator对象用于服务器的认证(传入用户名和密码)。这里就需要了解一个网络编程的协议,SMTP协议,简单邮件传输协议。

weixin_62226624的博客 1033

滑块逆向及流程分析

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

pyzzd的博客 8007

Challenge 6 - OSCP C

开放了161端口,直接snmpbulkwalk扫描得到账号密码试了那几个web端口,发现可以登录8083的vesta,但是需要用户名大写Jack接着登录之后里面可以创建计划任务,直接弄个反弹shell,一分钟回弹。得到shell后,运行linpeas.sh提供了几个可能的漏洞,挨个试一下。

羽的博客 4129

【计算机网络】路由原理验证实验 & SMTP模拟实验

距离矢量(Distance Vector)路由算法,简称DV算法。我们常见的网络层协议中,路由信息协议RIP在进行路由选择时,采用的就是DV算法。DV算法是一种分散式路由算法(Decentralized Routing Algorithm),路由器以迭代、分布式的方式计算出最低开销路径,但没有一个节点拥有关于所有网络链路开销的完整信息(这也是DV算法区别于LS算法的最主要特征)。

Esperanto.的博客 1478

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

基于SMTP协议的模拟邮件系统(附完整代码)

技术简介:依托Java,利用smtp,pop3协议的邮件收发系统,其中涉及少量java swing编程 本文主要介绍利用java实现的一个简单的邮件收发系统 大体思路: 1. 配置自己的邮箱,和邮箱授权密码(smtp,pop3需要授权密码,而不是登录密码) 2. 填写好收件人邮箱,邮件主题,邮件内容,然后利用现有的smtp包,调用函数,邮件发送成功 3.利用pop3协议,一次性获取自己的...

专心搬砖... 8227

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

不需要smtp服务器的邮件发送

工作中总用到需要发送邮件的情形,但是每次都需要一个smtp服务器来转发,他们仅仅是转发而已 为了一个简单的邮件还要弄个邮件服务器太麻烦了,Postfix不会装,sendmail也不熟悉。 而且如果公司的邮件服务器不稳定(别说你没碰到),总是能遇到邮件发送延迟,甚至丢失的情况 干嘛不自己伪造个协议,跳过通过smtp服务器这一层呢?而且可以模拟任何人给任何人发送邮件(虽然可以,但是鄙视发垃圾邮件

muyannian的专栏 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

邮件传输协议SMTP,POP3,IMAP,MIME

电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递,就必须遵循一定的规则,这些规则就是邮件传输协议。SMTP协议定了邮件客户端与SMTP服务之间,以及两台SMTP服务器之间发送邮件的通信规则;POP3/IMAP协议定义了邮件客户端与POP3服务器之间收发邮件的通信规则。 一、SMTP协议         SMTP(Simple Mail Transfer

Coding小飞侠的专栏 5021
上一篇: JFrame动态显示距离矢量算法过程
下一篇: 一种基于图论的分割图算法
Ada Chambers
博客等级 码龄8年 29粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值