Eclipse JAVA 发送邮件(Gmail)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

简单地使用JAVA发送邮件


一、Gmail POP3 IMAP 设置

启用POP和IMAP

在这里插入图片描述
接下来获取16位密码
在这里插入图片描述
在安全性中找到两步验证,将两步验证启用。
在这里插入图片描述
点击两步验证,在页面最底端可以看到设置16位密码的

在这里插入图片描述
这样邮箱那边就设置完成啦!

二、JAVA 代码

1.导入jar包,且在 module-info.java 中引用

  1. 下载java.mail.jar
  2. Properties->Java Build Path->Libraries->Add External JARs
  3. 最后在module-info中添加
    在这里插入图片描述

2.代码

记得发送邮箱和收件邮箱设置成你要的,代码如下(示例):

package mail;

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

// 警告: expected resource not found: /META-INF/javamail.default.address.map
// 大概率是版本问题
public class SendEmailSSL {
    public static void main(String[] args) {
    	// 用户名
        final String username = "你的邮箱";
        // 密码
        final String password = "你的16位密码";
        
        // 创建一个新的Properties对象
        Properties prop = new Properties();
        // 设置SMTP主机名
        prop.put("mail.smtp.host", "smtp.gmail.com");
        // 设置SMTP主机端口号
        prop.put("mail.smtp.port", "465");
        // 是否启用身份认证
        prop.put("mail.smtp.auth", "true");
        // 下面开始配置SSL(安全套接字层)
        // 设置SSL连接的端口号
        prop.put("mail.smtp.socketFactory.port", "465");
        // 设置SSL连接的SockerFactory类。javax.net.ssl.SSLSocketFactory是SSL套接字的默认工厂类。
        prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        
        // 创建一个会话,且设置Authenticator(身份验证)
        Session session = Session.getInstance(prop, new Authenticator() {
            // 重写getPasswordAuthentication方法
        	protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });

        try {
            Message message = new MimeMessage(session);
            // 设置发件人地址
            message.setFrom(new InternetAddress(username));
            // 设置收件人地址
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("收件人的邮箱"));
            // 邮件主题
            message.setSubject("Subject Line");
            // 邮件内容
            message.setText("This is the email content.");
            
            // 发送邮件
            Transport.send(message);
            System.out.println("Email sent successfully!");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值