(简单)利用JAVA发送QQ邮箱(发送附件)

部分内容来源网络----由于时间急促,就不多做介绍了,所有的注释都在内容

16位STMP口令:获取方式,见下图,获取口令后记得保存更改,否则可能会报535(登录QQ邮箱后点击设置即可出现如下界面)

(简单)利用JAVA发送QQ邮箱(发送附件)_第1张图片
登录QQ邮箱

package com.cn;

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.Authenticator;

import javax.mail.Message.RecipientType;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

import javax.mail.internet.MimeUtility;

public class SendMailText {

    public static void main(String[] args) throws Exception {

    // 创建Properties 类用于记录邮箱的一些属性

        Properties props = new Properties();

        // 表示SMTP发送邮件,必须进行身份验证

        props.put("mail.smtp.auth", "true");

        //此处填写SMTP服务器

        props.put("mail.smtp.host", "smtp.qq.com");

        //端口号

        props.put("mail.smtp.port", "587");

        // 此处填写你的账号

        props.put("mail.user", "******@qq.com");

        // 此处的密码就是前面说的16位STMP口令

        props.put("mail.password", "******");

        // 构建授权信息,用于进行SMTP进行身份验证

        Authenticator authenticator = new Authenticator() {

            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 to = new InternetAddress("******@qq.com");

        message.setRecipient(RecipientType.TO, to);

        // 设置邮件标题


        // 创建附件“附件节点”

        MimeBodyPart attachment = new MimeBodyPart();

        DataHandler dh2 = new DataHandler(new FileDataSource("C:\\Users\\admin\\Desktop\\pb.pptx")); // 读取本地文件

        attachment.setDataHandler(dh2); // 将附件数据添加到“节点”

        attachment.setFileName(MimeUtility.encodeText(dh2.getName())); // 设置附件的文件名(需要编码)

        //设置整个邮件的关系(将最终的混合“节点”作为邮件的内容添加到邮件对象)

        MimeMultipart mm = new MimeMultipart();

        mm.addBodyPart(attachment);

        mm.setSubType("mixed"); // 混合关系

        message.setSubject("商业计划书");

        // 设置邮件的内容体

        message.setContent("商业计划书", "text/html;charset=UTF-8");

        message.setContent(mm);

        //保存设置

        message.saveChanges();

        // 最后当然就是发送邮件啦

        Transport.send(message);

    }

}



(简单)利用JAVA发送QQ邮箱(发送附件)_第2张图片
成功发送接收

你可能感兴趣的:((简单)利用JAVA发送QQ邮箱(发送附件))