java实现QQ邮箱的收发邮件

1. 开发环境

Java,idea,QQ邮箱

2.开启邮箱服务

首先登入QQ邮箱,点击“设置—》账号”,将POP3/SMTP 服务开启,同时生成授权码
在这里插入图片描述

3.获取授权码

点击生成授权码,按照邮箱给出的步骤发送短信后,会得到一个16位的授权码,记住,后面的代码中会用到

4.代码实现

4.1.1.导入依赖
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.5.0-b01</version>
        </dependency>
4.1.2 随便创建一个启动类,含有main函数或者maven项目的test方法(我是利用的maven项目的测试类进行编写的)
import org.junit.jupiter.api.Test;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

public class SendMail {
    //发件人的邮箱
    public static String Account="用于发送邮件的邮箱,例如:XXX@qq.com";
    public static String Password="刚刚获取的16位授权码";
    //QQ邮箱这里一般是相同的,可以不修改
    public static String SMTPHost="smtp.qq.com";
    //收件人邮箱
    public static String receiveMail="用于接收的邮箱账号";

    @Test
    public void SendMailTest() throws Exception {
        //1.创建参数配置,用于连接邮件服务器的参数配置
        Properties prop=new Properties();
        prop.setProperty("mail.transport.protocol","smtp");
        prop.setProperty("mail.smtp.host",SMTPHost);
        prop.setProperty("mail.smtp.auth","true");
        final String smtpPort="465";
        prop.setProperty("mail.smtp.port",smtpPort);
        prop.setProperty("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
        prop.setProperty("mail.smtp.socketFactory.fallback","false");
        prop.setProperty("mail.smtp.socketFactory.port",smtpPort);

        //2.根据配置创建会话
        Session session=Session.getInstance(prop);
        //设置debug
        session.setDebug(true);

        //3.创建一封邮件
        MimeMessage message=createMimeMessage(session,Account,receiveMail);

        //4.根据Session获取邮件
        Transport transport=session.getTransport();

        //5.使用邮箱账号密码连接邮件服务器
        transport.connect(Account,Password);

        //6.发送邮件,发到所有的收件地址
        transport.sendMessage(message,message.getAllRecipients());

        //7.关闭连接
        transport.close();

    }

    public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception {
        //1.创建一封邮件
        MimeMessage message=new MimeMessage(session);

        //2.from:发件人
        message.setFrom(new InternetAddress(sendMail,"发件人","UTF-8"));

        //3.to:收件人
        message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(receiveMail,"收件人","UTF-8"));

        //4.邮件主题
        message.setSubject("发送邮箱的标题/主题","UTF-8");

        //5.邮件主题
        message.setContent("你需要发送的邮件内容","text/html;charset=UTF-8");

        //6.设置发件时间
        message.setSentDate(new Date());

        //7.保存设置
        message.saveChanges();
        return message;
    }
}

点击启动测试类,会受到一封邮件,表明程序运行成功!

详细步骤可以参考:https://blog.csdn.net/xuemengrui12/article/details/78530594

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
********************欢迎使用该小小的邮件管理系统******************** 一、功能: (1)在你的邮箱支持POP3服务的前提下,你可以登自己的邮箱进行邮件管理! 1、用户登录设置 2、登录邮箱 3、收邮件 4、新建邮件 5、阅读邮件(不完善) 6、回复 7、删除邮件 8、导出eml文件----打开该eml文件 9、下载附件 10、注销 (2)不登录自己的邮箱,而直接使用该客户软件新建邮件,不过要手动设置自己的SMTP服务器,然后再发送邮件! 1、SMTP服务器设置 2、写邮件 3、群发邮件 二、设置技巧 (1)本系统的实现首先需要下载mail.jar包和activation.jar包,然后添加到本项目中(方法:直接在项目里点“库”--->添加JAR/文件夹...-->把刚才的两个JAR包直接添加进来即可)。 (2)开启自己邮箱的POP3服务:首先在WEB方式下登录自己的邮箱,在设置中查找POP3/SMTP服务的选项,进而开启自己的POP3/SMTP服务。 (3)教你一招:根据域名查询SMTP服务器 在DOS命令行中输入:nslookup 接着输入:set type=mx 再输入:@后面的主机名(即邮箱域名),即可返回SMTP服务器的主机名 还可以输入:set type=a 再输入:返回的SMTP服务器的主机名,便可以得到它的IP地址 (4)再教你一招:借助Telnet程序手工收发邮件 发:telnet smtp.163.com 25(默认的SMTP服务器端口为25) 之后的过程这里不详细说明,大家可以自己去查一些资料; 收:telnet pop3.163.com 110(默认的POP3服务器端口为110) 一样这由大家去查查资料; 总之,这些过程就是邮件收发的底层的通信过程,通俗易懂,但由于一些安全的因素,底层这样直接的通信已越来越被受限制,因此底层的通信极不易成功,这也是本系统采用高层JavaMail API的原因之一。 (5) 一些常用邮箱的POP3与SMTP服务器设置 163邮箱 http://mail.163.com POP3服务器:POP.163.COM 或 POP3.163.COM SMTP服务器:SMTP.163.COM QQ邮箱 http://mail.qq.com POP3服务器:pop.qq.com SMTP服务器:smtp.qq.com Gmail邮箱 http://gmail.google.com 要在Gmail帐户中启用POP,首先登录到Gmail帐户。点击任一Gmail页顶部的设置,点击橙色框邮件设置中的转发和POP。 POP3服务器:pop.gmail.com SMTP服务器:smtp.gmail.com Tom邮箱 http://mail.tom.com POP3服务器:pop.tom.com SMTP服务器:smtp.tom.com 搜狐邮箱 http://mail.sohu.com POP3服务器:pop3.sohu.com 或 pop.sohu.com SMTP服务器:smtp.sohu.com 新浪邮箱 http://mail.sina.com.cn POP3服务器:pop.sina.com 或 pop3.sina.com SMTP服务器:smtp.sina.com 重庆交通大学WEB邮箱 http://mail.cquc.edu.cn POP3服务器:pop3.cquc.edu.cn SMTP服务器:smtp.cquc.edu.cn 雅虎邮箱 http://cn.mail.yahoo.com POP3服务器:pop.mail.yahoo.com.cn SMTP服务器:smtp.mail.yahoo.com.cn 网易188财富邮 http://www.188.com POP3服务器:pop.188.com SMTP服务器:smtp.188.com 126邮箱 http://www.126.com 126免费邮箱目前不直接开放smtp、pop3,但是对于126至尊邮开放pop3和smtp POP3服务器:pop.vip.126.com SMTP服务器:smtp.vip.126.com 21cn邮箱 http://mail.21cn.com 21cn商务邮箱 pop3服务器:pop.21cn.net smtp服务器:smtp.21cn.net 21cn经济邮箱 pop3服务器:pop.21cn.com smtp服务器:smtp.21cn.com 21cn免费邮箱 pop3服务器:p
实现Java接收QQ邮件,您需要使用JavaMail API,它是一个用于发送和接收电子邮件Java API。以下是实现此功能的步骤: 1. 首先,您需要在QQ邮箱中启用SMTP和POP3协议。进入QQ邮箱设置 -> 账户 -> POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,勾选“开启POP3/SMTP服务”。 2. 下载JavaMail API,并将其添加到您的Java项目中。JavaMail API是一个开源项目,可以在https://java.net/projects/javamail/downloads下载。 3. 编写Java代码以连接到QQ邮件服务器并接收电子邮件。以下是示例代码: ``` import java.util.Properties; import javax.mail.*; public class ReceiveEmail { public static void main(String[] args) { String host = "pop.qq.com"; String username = "your_qq_email_address"; String password = "your_qq_email_password"; Properties properties = new Properties(); properties.put("mail.pop3.host", host); properties.put("mail.pop3.port", "995"); properties.put("mail.pop3.starttls.enable", "true"); Session emailSession = Session.getDefaultInstance(properties); try { Store store = emailSession.getStore("pop3s"); store.connect(host, username, password); Folder emailFolder = store.getFolder("INBOX"); emailFolder.open(Folder.READ_ONLY); Message[] messages = emailFolder.getMessages(); for (int i = 0, n = messages.length; i < n; i++) { Message message = messages[i]; System.out.println("Subject: " + message.getSubject()); System.out.println("From: " + message.getFrom()[0]); System.out.println("Text: " + message.getContent().toString()); } emailFolder.close(false); store.close(); } catch (MessagingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的代码中,您需要将“your_qq_email_address”和“your_qq_email_password”替换为您的QQ邮箱地址和密码。此代码将连接到QQ邮件服务器,打印收件箱中的所有电子邮件的主题,发件人和正文。 希望这可以帮助您实现Java接收QQ邮件

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值