java实现简单的邮件发送

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("[email protected]"));
        //邮件的标题
        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("[email protected]"));
        //邮件的标题
        message.setSubject("邮件标题");
        //邮件的文本内容
        message.setContent("文本内容!", "text/html;charset=UTF-8");
        //返回创建好的邮件对象
        return message;
    }
}

最后还需要在发送者的邮箱里面开启服务,开启如图:
java实现简单的邮件发送
注意点:发送邮件第三步的授权码就是你开启服务后会生成的,而不是自己的邮箱密码。
最后希望这个能够帮助到大家。