1.先导两个包,activation.jar 和 mail.jar,

2.设置自己的QQ邮箱,需要生成一个秘钥,

java 读取邮箱 附件 java调用邮箱接口_发送邮件


在这个选项下找到这个地方,全部开启,需要短信验证四次,然后生成一个秘钥,记录下来就好

java 读取邮箱 附件 java调用邮箱接口_jar_02


准备工作就完成了,下来看一下代码:

package com.zhang.test.tools;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

public class 发送邮件 {
	// 发件人的邮箱地址和密码
    public static String sendEmailAccount = "我自己的QQ邮箱@qq.com";
    //如果有授权码,此处填写授权码
    public static String sendEmailPassword = "这里就是上边生成的那个秘钥,切记保密";
    // 发件人邮箱的 SMTP 服务器地址, 可以登录web邮箱查询
    public static String sendEmailSMTPHost = "smtp.qq.com";
    // 收件人邮箱地址,这里自己给自己发也是可以的
    public static String receiveMailAccount = "peter447@qq.com";
    
    public static void main(String[] args) throws Exception {
    	
        // 参数配置
        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.smtp.host", sendEmailSMTPHost);
        props.setProperty("mail.smtp.auth", "true");
        props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.setProperty("mail.smtp.port", "465");
        props.setProperty("mail.smtp.socketFactory.port", "465");
        // 根据配置创建会话对象, 用于和邮件服务器交互
        Session session = Session.getDefaultInstance(props);
        session.setDebug(true);   // 设置为debug模式, 可以查看详细的发送 log
        // 创建一封邮件
        Message message = createMailMessage(session, sendEmailAccount, receiveMailAccount);
        // 根据 Session 获取邮件传输对象
        Transport transport = session.getTransport();
        // 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则会报错
        transport.connect(sendEmailAccount, sendEmailPassword);
        // 发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        // 关闭连接
        transport.close();
    }

    /**
     * 创建一封简单邮件
     * @throws MessagingException 
     * @throws AddressException 
     */
    private static Message createMailMessage(Session session, String sendMail, String receiveMail) throws AddressException, MessagingException {
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(sendMail));
        message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail));
        // 设置邮件标题
        message.setSubject("这是我的测试邮件");
        // 设置邮件正文
        message.setText("《基度山伯爵》是十九世纪法国著名作家大仲马的名著。小说描写水手邓蒂斯善良无辜遭受陷害,囚居十余年,"
        		+ "九死一生。脱狱后报善惩恶。情节曲折,场面惊险,人物栩栩如生,故事起伏跌宕,宛如天外飞来,引人人胜。"
        		+ "黑牢生活绘声绘色;脱狱后报善惩恶,大快人心。写对三个恶人的复仇,各有不同,马瑟夫(即弗南)夺人之妻,"
        		+ "终被妻儿所弃,落得自杀身死。邓格拉司谋人财产,终遭破产,陷于饥饿与潦倒之中。维尔福下井投石,"
        		+ "损人利己,结果妻儿双双服毒,自己也发了疯。全书贯穿着善良战胜邪恶的思想。");
        message.setSentDate(new Date());
        //保存设置
        message.saveChanges();
        return message;
    }

}

运行起来,出现这个就OK了,

java 读取邮箱 附件 java调用邮箱接口_java_03

检查一下目标邮箱:

java 读取邮箱 附件 java调用邮箱接口_jar_04


大功告成