java通过SMTP发送QQ邮件的完全步骤

本文介绍如何配置QQ邮箱的SMTP服务并使用Java发送邮件。首先需在QQ邮箱中开启SMTP服务并获取16位授权码。然后通过Java代码配置邮件服务器参数,包括SMTP主机、端口等,并利用提供的授权码进行身份验证。

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

首先,我们需要打开QQ邮箱的SMTP服务,因为QQ邮箱对于一般的用户都是默认关闭SMTP服务的。

  1. 打开QQ邮箱,点击设置
    打开QQ邮箱,点击设置
  2. 点击帐户
    账户
  3. 找到SMTP服务,默认关闭,点击开启,验证后给出一个用于使用SMTP的16位授权码,此处这个口令一定牢记。
    POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

代码前准备:
要使用Java的邮箱功能需要activation.jar和mail.jar包

package cn.itcast.shop.utils;

import java.security.Security;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 邮件发送工具类
 * @author Administrator
 *
 */
public class MailUtils {
    /**
     * 发送邮件
     * @param to    :收件人
     * @param code  :激活码
     */
    public static void sendMail(String to,String code){
        /**
         * 1、获得一个Session对象;
         * 2、创建一个代表邮件的对象Message;
         * 3、发送邮件Transport对象。
         */
//      创建Properties类用于记录邮箱的一些属性
        Properties props = new Properties();
//      设置发送邮件的主机:此处填写SMTP发件服务器
        props.setProperty("mail.smtp.host", "smtp.qq.com");
//      端口号,QQ邮箱给出了两个端口
        props.put("mail.smtp.port", "587");
//      表示SMTP发送邮件,必须进行身份验证
        props.put("mail.smtp.auth", "true");
//      获得连接对象Session:javax.mail.Session
        Session session = Session.getInstance(props, new Authenticator(){

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
//              发送邮件服务器邮箱账号、密码(此密码是QQ邮箱给的16位授权码)
                return new PasswordAuthentication("******@qq.com","16位授权码");
            }

        });
//      创建邮件消息对象
        Message message = new MimeMessage(session);
        try {
//          设置发件人
            message.setFrom(new InternetAddress("2311239756@qq.com"));
//          设置收件人TO,(抄送CC,密送BCC)
            message.addRecipient(RecipientType.TO, new InternetAddress(to));
//          设置标题
            message.setSubject("激活邮件");
//          设置邮件内容
            message.setContent("邮件内容","text/html;charset=UTF-8");
//          发送邮件
            Transport.send(message);
        } catch (AddressException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        sendMail("接收邮件的邮箱@qq.com", "激活码用于用户注册");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值