java实现简单的邮件发送案例,学会了这个你就可以利用这个来整你的好友了,不断地给他进行邮箱轰炸(当然个人不建议瞎搞),最重要的是明白其中的原理最好了。
话不多说,直接看代码案例了。
首先需要导入的jar包依赖是下面的:

<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>

导入好jar依赖后就可以进行案例的编写了。
首相我们先设置服务器,将其设置为qq邮箱发送,若是想要发送为其他邮箱的话可以自行百度其配置。

prop.setProperty("mail.host", "smtp.qq.com");
prop.setProperty("mail.transport.protocol", "smtp");

然后加入下面这行代码,其可以使你在后台控制器中完整的看到其执行流程

prop.setProperty("mail.smtp.debug","true");

接下来便是重点也是发送邮件的5个步骤

for(int i = 0;i<5;i++) {
//1、创建session
Session session = Session.getInstance(prop);
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。
ts.connect("smtp.qq.com", "邮件发件人邮箱", "16位授权码");
//4、创建邮件
Message message = createSimpleMail(session);
//5、发送邮件
ts.sendMessage(message, message.getAllRecipients());
ts.close();
}

其中的for循环就是你希望发送多少次给目标邮箱(这样就能达到邮箱轰炸的效果了,建议循环次数不要太大,不然的话会被记录ip,你当天之内就不能发邮件了,这个可是我自己亲身体验过的哦)。
里面步骤4有一个创建邮件的方法。具体方法的代码如下:

//创建邮件对象
MimeMessage message = new MimeMessage(session);
//指明邮件的发件人
message.setFrom(new InternetAddress("邮件发件人邮箱"));
//指明邮件的收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("936109083@qq.com"));
//邮件的标题
message.setSubject("邮件标题");
//邮件的文本内容
message.setContent("文本内容!", "text/html;charset=UTF-8");
//返回创建好的邮件对象
return message;

具体的完整代码如下:

package com.itds.demo;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties; /**
* @author tb
* @ClassName Demo2
* @description 测试邮件发送2
* @DATE 2018/12/13 0013 10:10
**/
public class Demo2 {
public static void main(String[] args) throws Exception{ Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.qq.com");
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.debug","true");
//prop.setProperty("mail.smtp.auth", "true");
//使用JavaMail发送邮件的5个步骤
for(int i = 0;i<5;i++) {
//1、创建session
Session session = Session.getInstance(prop);
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。
ts.connect("smtp.qq.com", "邮件发件人邮箱", "16位授权码");
//4、创建邮件
Message message = createSimpleMail(session);
//5、发送邮件
ts.sendMessage(message, message.getAllRecipients());
ts.close();
}
}
public static MimeMessage createSimpleMail(Session session) throws Exception {
//创建邮件对象
MimeMessage message = new MimeMessage(session);
//指明邮件的发件人
message.setFrom(new InternetAddress("邮件发件人邮箱"));
//指明邮件的收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("936109083@qq.com"));
//邮件的标题
message.setSubject("邮件标题");
//邮件的文本内容
message.setContent("文本内容!", "text/html;charset=UTF-8");
//返回创建好的邮件对象
return message;
}
}

最后还需要在发送者的邮箱里面开启服务,开启如图:

注意点:发送邮件第三步的授权码就是你开启服务后会生成的,而不是自己的邮箱密码。
最后希望这个能够帮助到大家。

java简单的邮件发送的更多相关文章

  1. Spring进阶—如何用Java代码实现邮件发送(一)

    相关文章: <Spring进阶—如何用Java代码实现邮件发送(二)> 在一些项目里面如进销存系统,对一些库存不足发出预警提示消息,招聘网站注册用户验证email地址等都需要用到邮件发送技 ...

  2. java实现smtp邮件发送

    一.准备工作 首先你需要已一个发送邮箱,一般的邮箱都有SMTP.POP3服务,比如QQ邮箱,登陆QQ邮箱开启SMTP服务,开启是服务器会提示你设置独立密码,这个密码是跟邮箱正常登陆的密码不同的,这个是 ...

  3. Java实现多线程邮件发送

    利用java多线程技术配合线程池实现多任务邮件发送. 1.基本邮件发送MailSender package hk.buttonwood.ops.email; import java.io.File; ...

  4. Java实现QQ邮件发送

    首先我们需要两个jar包,点击下面即可下载这两个包: JavaMail mail.jar 1.4.5 JAF(版本 1.1.1) activation.jar 我们这里采用QQ邮箱发送邮件为例,代码如 ...

  5. Java实现QQ邮件发送客户端

    目录 一.前言:QQ邮件发送程序 二.封装SMTP操作 三.实现多线程接收 四.QQ邮件客户端界面设计 1.连接按钮 2.发送按钮 五.QQ邮件发送效果演示 六.总结 一.前言:QQ邮件发送程序 在上 ...

  6. .Net(C#)最简单的邮件发送案例

    一.序言 刚开始接触邮件发送功能的时候,在网上找的资料都挺复杂的!对于新手入门有点难(至少对于本人来说,第一次接触的时候确实不容易).这里就写一段简单的邮箱发送代码,备忘,也给新手一个参考(相关类的字 ...

  7. mailto - 简单多媒体邮件发送程序

    SYNOPSIS mailto  [-a] [-c] [-s] [recipient name(s)] DESCRIPTION mailto 程序是一个用于发送MIME格式的多媒体邮件(MIME格式是 ...

  8. 简单的邮件发送mail.jar

    public class MailSender { final static Logger logger = Logger.getLogger(MailSender.class); /** * 发送简 ...

  9. Java 实现 HtmlEmail 邮件发送功能

    引言 在平常的企业级应用开发过程中,可能会涉及到一些资讯通知需要传达,以及软件使用过程中有一些安全性的东西需要及早知道和了解,这时候在局域网之间就可以通过发送邮件的方式了.以下就是代码实现了: pac ...

随机推荐

  1. 判断RadioButtonList是否选中

    RadioButtonList有很多指示用户选择项的属性,如SelectedIndex 当该属性 = -1时表示用户没选择项SelectedItem  当该属性为null时也表示用户没选择项

  2. RedisUtil工具类

    转载:http://blog.csdn.net/liuxiao723846/article/details/50401406 1.使用了jedis客户端,对redis进行了封装,包括: 1)使用了re ...

  3. 【.Net姿势随记】const 与 readonly 初始化姿势

    using System; class P {     static readonly int A=B*10;     static readonly int B=10;        public  ...

  4. jq给动态生成的标签绑定事件的几种方法

    经常遇到给动态生成的标签绑定事件不好用,自己简单测试总结了下,结论如下了: body> <!-- 下面是用纯动态方式生成标签 --> <div id="d2" ...

  5. vue webkit-box-orient: vertical打包线上不显示

    emmm……觉得不科学啊,写了几个vue的网站,限制超出行数省略号.结果发现放到线上,全都瓦特了.反复检查本地跑起来没错,代码没少,偏偏在线上的时候就是缺了vue -webkit-box-orient ...

  6. 2018.10.04 NOIP模拟 排队(组合数学)

    传送门 T2原题啊. 直接组合数学求出合法方案数,再除去一个(n+m)!(n+m)!(n+m)!: ans=0(n<m)ans=0(n<m)ans=0(n<m) ans=n+1−mn ...

  7. 2018.10.01 NOIP模拟 卡牌游戏(贪心)

    传送门 简单贪心题. 然而考试的时候失了智少讨论了一种情况导致gg. 实际上用到了二分图匹配的思想,L每次找到刚好比当前的牌小一点的出出去,看能匹配几个. 如何处理? 我们先考虑第一种比分策略. 我们 ...

  8. 2018.06.29 NOIP模拟 繁星(前缀和)

    繁星 [问题描述] 要过六一了,大川正在绞尽脑汁想送给小伙伴什么礼物呢.突然想起以前拍过一张夜空中的繁星的照片,这张照片已经被处理成黑白的,也就是说,每个像素只可能是两个颜色之一,白或黑.像素(x,y ...

  9. 2018.09.08 bzoj1151: [CTSC2007]动物园zoo(状压dp)

    传送门 状压dp好题啊. 可以发现这道题的状压只用压缩5位. f[i][j]表示当前在第i个位置状态为j的最优值. 显然可以由f[i-1]更新过来. 因此只用预处理在第i个位置状态为j时有多少个小朋友 ...

  10. java多线程同步(转)

    原文地址:http://developer.51cto.com/art/201509/490965.htm 一.场景 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时, ...