java代码实现邮件的发送

介绍:本文maven项目通过java代码实现邮件的发送,发送服务器为QQ邮箱服务器,即通过QQ邮箱实现邮件的发送

首先需要开启QQ服务并获取授权码

授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码

适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

QQ邮箱Web界面上方——设置——账户——找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

选择开启,开启后在下方点击获取授权码,在下面发送信息的时候需要设置该授权码
1.添加依赖的jar

    

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4.4</version>
</dependency>

2.代码实现  

package com.shulie;
import org.junit.Test;
import javax.mail.Address;
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;

public class JavaEmail {
    @Test
    public void testMail() throws Exception{
        Properties props = new Properties();
        final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
        props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.port", "465");
        props.put("mail.smtp.host","smtp.qq.com");//邮件发送服务器地址
        //在实际操作中遇到一个问题 报错need ehlo and auth first!  这是可以把下面的代码修改为props.put("mail.smtp.auth","true")试试
        props.put("mail.smtp.auth",true);//是否验证用户身份
        Session session = Session.getInstance(props);//得到Session;
        session.setDebug(true);//使用debug模式,在控制台输出smtp协议应答过程
        //创建一个MimeMessage格式的邮件
        MimeMessage message = new MimeMessage(session);
        //设置发送者   发送者的邮箱地址
        Address fromAddress = new InternetAddress("XXXXXXX@qq.com");//邮箱地址
        message.setFrom(fromAddress);//设置发件地址
        //设置接收者   163邮箱 qq邮箱 阿里云邮箱均可。。。
        Address toAddress = new InternetAddress("*********");//收件人邮箱地址
        //下面该message.setRecipient(Message.RecipientType.TO, toAddress) 其中第二个参数可以设置一个InternetAddress数组,实现发送给多个用户
        message.setRecipient(Message.RecipientType.TO, toAddress);//设置收件地址
        //设置邮件主题
        message.setSubject("来自上海");
        //设置邮件内容
        message.setText("大帅,你好");
        //保存邮件
        message.saveChanges();
        // 得到发送邮件的通道
        Transport transport = session.getTransport("smtp");
        // 通道连接服务器   第二个参数为  发送者的邮箱  第三个参数为该邮箱的16位授权码
        transport.connect("smtp.qq.com","XXXXXXXX@qq.com","*****************");
        // 发送
        transport.sendMessage(message, message.getAllRecipients());
        // 关闭通道
        transport.close();
    }
}

参考博客:https://blog.csdn.net/miaoch/article/details/53172743

参考博客:https://blog.csdn.net/zimou5581/article/details/70227860

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值