美文网首页
(简单)利用JAVA发送QQ邮箱(发送附件)

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

作者: 支付_产品经理 | 来源:发表于2019-03-21 15:52 被阅读0次

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

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

    登录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邮箱(发送附件)

          本文链接:https://www.haomeiwen.com/subject/pkfcvqtx.html