使用Java实现纯文本邮件的发送(2)

Java实现纯文本邮件发送代码实现

在上篇博客中讲解了一些必需jar包的导入以及相关知识的讲解,这篇博客讲解代码实现:

1.首先我们需要将相关信息存储到Properties类的对象中,这些信息包括邮箱服务器的主机、发送协议和需要验证用户密码,代码实现如下:

//1.创建一个配置文件保存相关信息
Properties properties = new Properties();
//设置邮件服务器,因为是QQ邮箱,所以第二个参数在这里是smtp.qq.com
properties.setProperty("mail.host", "smtp.qq.com");
//设置协议,因为是发送邮件,所以这里的协议是smtp协议
properties.setProperty("mail.transport.protocol", "smtp");
//设置用户是否需要验证
properties.setProperty("mail.smtp.auth", "true");

2.在保存相关信息后,我们需要创建Session会话对象,创建完成后开启Sessiondebug模式,代码实现如下:

//2.创建Session会话对象
Session session = Session.getDefaultInstance(properties, new Authenticator() {
     @Override
     protected PasswordAuthentication getPasswordAuthentication() {
           //发件人邮件用户名、授权码
           return new PasswordAuthentication("872574248@qq.com", "授权码");
     }
});
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);

3.在创建好Session对象后,通过该对象获得Transport对象,通过该对象可以通过SMTP协议和邮件服务器建立连接,代码实现如下:

//3.通过session对象获得transport对象,需要捕获或抛出异常
Transport transport = session.getTransport();
//连接服务器,需要抛出异常
transport.connect("smtp.qq.com", "872574248@qq.com", "授权码");

4.在连接服务器后就可以写邮件,在MimeMessage对象中添加收件人的信息和邮件的内容和主题

//4.连接上之后我们需要发送邮件
MimeMessage mimeMessage = new MimeMessage(session);
//邮件发送人:
mimeMessage.setFrom(new InternetAddress("872574248@qq.com"));
//邮件接收人:可以同时发送给很多人,我们这里只发送给自己
mimeMessage.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("872574248@qq.com"));
//邮件标题:
mimeMessage.setSubject("你好");
//邮件内容:
mimeMessage.setContent("强静州你好", "text/html;charset=UTF-8");

5.在创建好上面讲到的一些东西后,就可以进行邮件的发送

//5.发送邮件
transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());

6.在发送完邮件后可以关闭连接

//6.关闭连接
transport.close();

完成代码:

package org.westos.java;

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

public class SendEmail {
    public static void main(String[] args) throws MessagingException {
        //1.创建一个配置文件保存相关信息
        Properties properties = new Properties();
        //设置QQ邮件服务器
        properties.setProperty("mail.host", "smtp.qq.com");
        //设置发送协议
        properties.setProperty("mail.transport.protocol", "smtp");
        //设置用户是否需要验证
        properties.setProperty("mail.smtp.auth", "true");

        //===================================准备工作完毕

        //2.创建Session会话对象
        Session session = Session.getDefaultInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                //发件人邮件用户名、授权码
                return new PasswordAuthentication("872574248@qq.com", "授权码");
            }
        });

        //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
        session.setDebug(true);

        //3.通过session对象获得transport对象,需要捕获或抛出异常
        Transport transport = session.getTransport();
        //连接服务器,需要抛出异常
        transport.connect("smtp.qq.com", "872574248@qq.com", "授权码");

        //4.连接上之后我们需要发送邮件
        MimeMessage mimeMessage = new MimeMessage(session);
        //邮件发送人:
        mimeMessage.setFrom(new InternetAddress("872574248@qq.com"));
        //邮件接收人:可以同时发送给很多人,我们这里只发送给自己
        mimeMessage.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("872574248@qq.com"));
        //邮件标题:
        mimeMessage.setSubject("你好");
        //邮件内容:
        mimeMessage.setContent("强静州你好", "text/html;charset=UTF-8");

        //5.发送邮件
        transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());

        //6.关闭连接
        transport.close();
    }
}

在编写完上述的代码后,可以点击执行,我是自己给自己发,可以看到右下角已经接收到邮件
在这里插入图片描述
要用Java代码实现邮件的发送,代码模式基本上就是这样,但是在选择方法时需要注意方法的重载时候参数的不同和如何选择

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值