Java学习笔记——Javamail发送邮件

今天有个朋友向我请教项目中发邮件的相关问题,结果发现自己也记不太清了,回顾了一下之后觉得得记一下。
首先需要导入jar包(jar包下载链接
maven项目也可以直接引用依赖

	<dependencies>
        <!--java邮件-->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
        
    </dependencies>

下面是工具类


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

public class EmailUtils {
    //参数分别为收件人的邮箱,邮件标题,邮件内容
    public static void sendEmail(String sendUser,String title,String content ) throws MessagingException {
        // 配置发送邮件的环境属性
        final Properties props = new Properties();
        // 表示SMTP发送邮件,需要进行身份验证
        props.put("mail.smtp.auth", "true");//需要验证
        props.put("mail.smtp.host", "smtp.qq.com");//邮箱的服务器,qq的就是smtp.qq.com,163的是smtp.163.com
        props.put("mail.user", "xxxx@qq.com");// 发件人的账号
        props.put("mail.password", "填写的是授权码");// 访问SMTP服务时需要提供的密码

        // 构建授权信息,用于进行SMTP进行身份验证
        Authenticator authenticator = new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // 用户名、密码
                String userName = props.getProperty("mail.user");
                String password = props.getProperty("mail.password");
                return new PasswordAuthentication(userName, password);
            }
        };
        // 使用环境属性和授权信息,创建邮件会话
        Session mailSession = Session.getInstance(props, authenticator);
        // 创建邮件消息
        MimeMessage message = new MimeMessage(mailSession);
        // 设置发件人
        InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
        message.setFrom(form);

        // 设置收件人
        InternetAddress sendUserMail = new InternetAddress(sendUser);
        message.setRecipient(Message.RecipientType.TO, sendUserMail);

        // 设置邮件标题
        message.setSubject(title);
        // 设置邮件的内容体
        message.setContent(content, "text/html;charset=UTF-8");
        // 发送邮件
        Transport.send(message);
    }
}

测试

 @Test
    public void test2(){
        String sendUser = "收件人邮箱";
        String title = "邮件标题";
        String content = "要发送的内容";
        try {
            EmailUtils.sendEmail(sendUser,title,content);
        } catch (MessagingException e) {
            e.printStackTrace();
            log.info("邮件发送失败");
        }
    }

效果
在这里插入图片描述
注:大部分邮箱的SMTP功能都是默认关闭的,需要自己开启,并获取授权码(获取授权码方式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值