java实现邮件发送

本文介绍了如何使用Java实现邮件发送,包括导入必要依赖、理解SMTP和POP3协议、配置邮件服务器授权码、编写客户端代码以及实际发送邮件的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.导入所需要的依赖

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>javax.mail-api</artifactId>
  <version>1.5.6</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.simplejavamail/simple-java-mail -->
<dependency>
  <groupId>org.simplejavamail</groupId>
  <artifactId>simple-java-mail</artifactId>
  <version>5.0.8</version>
</dependency>

2、了解邮件发送过程(了解相关协议SMTP和POP3等协议)

3、进行邮件服务器的相关设置(开启授权码登录)
nihai在这里插入图片描述
4、编写客户端代码

/* 发送邮件*/

public void sendMail(String address) throws Exception {

    Properties properties = new Properties();
    // 开启debug调试,以便在控制台查看
    properties.setProperty("mail.debug", "true");
    // 设置邮件服务器主机名
    properties.setProperty("mail.host", "smtp.126.com");
    // 发送服务器需要身份验证
    properties.setProperty("mail.smtp.auth", "true");
    // 发送邮件协议名称
    properties.setProperty("mail.transport.protocol", "smtp");

    // 指定验证为true
    properties.setProperty("mail.smtp.auth", "true");
    properties.setProperty("mail.smtp.timeout","1000");
    properties.setProperty("mail.smtp.port", "465");

    //开 启 S S L 加 密,否 则 会 失 败
    MailSSLSocketFactory sf = new MailSSLSocketFactory();
    sf.setTrustAllHosts(true);
    properties.put("mail.smtp.ssl.enable", "true");
    properties.put("mail.smtp.ssl.socketFactory", sf);
    //解决附件文件名过长的问题
    properties.put("mail.mime.splitlongparameters", "false");


    // 验证账号及密码,密码需要是第三方授权码
    final Authenticator auth = new Authenticator() {
        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("自己的邮箱地址", 授权码);
        }
    };

    Session session=Session.getInstance(properties,auth);

    /* 新建邮件 */
    Message message=new MimeMessage(session);

    message.setFrom(new InternetAddress("发件人邮箱"));

    message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(address));

    message.setSubject("邮件发送测试");

    message.setContent("<h1>邮件测试</h1>","text/html;charset=utf-8");
    Transport transport = session.getTransport();
    transport.connect("smtp.126.com","发件人邮箱","授权码");
    Transport.send(message);


}

5、发送邮件

@Test
    public void testMail(){
        String mailAddress="*****@qq.com";
        try {
            sendMail(mailAddress);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

6、邮件发送成功
在这里插入图片描述

至此便实现了邮件的发送过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值