• java mail qq邮箱配置 实例


    程序入口:
    Test_Email_N.java
    import java.io.IOException;
    import java.util.Date;
    import java.util.Properties;
    
    import javax.mail.Authenticator;
    import javax.mail.BodyPart;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Multipart;
    import javax.mail.Transport;
    import javax.mail.internet.AddressException;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    
    public class Test_Email_N {
        public static void  main(String args[]){
            try {
                send_email();
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void send_email() throws IOException, AddressException, MessagingException{
            
            String to = "1215186706@qq.com";
            String subject = "subject";
            String content = "content";
            Properties properties = new Properties();
            properties.put("mail.smtp.host", "smtp.qq.com");
            properties.put("mail.smtp.port", "25");
            properties.put("mail.smtp.auth", "true");
            Authenticator authenticator = new Email_Authenticator("1215186706@qq.com", "password");
            javax.mail.Session sendMailSession = javax.mail.Session.getDefaultInstance(properties, authenticator);
            MimeMessage mailMessage = new MimeMessage(sendMailSession);
            mailMessage.setFrom(new InternetAddress("1215186706@qq.com"));
            // Message.RecipientType.TO属性表示接收者的类型为TO
            mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
            mailMessage.setSubject(subject, "UTF-8");
            mailMessage.setSentDate(new Date());
            // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
            Multipart mainPart = new MimeMultipart();
            // 创建一个包含HTML内容的MimeBodyPart
            BodyPart html = new MimeBodyPart();
            html.setContent(content.trim(), "text/html; charset=utf-8");
            mainPart.addBodyPart(html);
            mailMessage.setContent(mainPart);
            Transport.send(mailMessage);
        }
    }

    其中依赖的jar包为javax.mail,我这里是maven管理的,直接用maven去下载jar包,也可以到https://java.net/projects/javamail/pages/Home直接下载jar包.

        <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>1.5.0-b01</version>
            </dependency>

    Email_Authenticator.java,这里继承了Authenticator 类,用来封装name,和password的:

    package com.infomorrow.webtest.JuxinliTest.restdetect;
    
    import javax.mail.Authenticator;
    import javax.mail.PasswordAuthentication;
    public class Email_Authenticator extends Authenticator {
        String userName = null;
        String password = null;
        public Email_Authenticator() {
        }
        public Email_Authenticator(String username, String password) {
            this.userName = username;
            this.password = password;
        }
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(userName, password);
        }
    }

    配置就这么多,把邮箱密码改成自己的就可以了,否则会报错。程序到这就可以运行了!

     /*****************************************************************/

    下面介绍的是配置properties文件来管理账号密码:

    如下图,新建一个email.propertis文件。

    email.propertis:

    mail.smtp.host=smtp.qq.com
    mail.smtp.port=25
    username=1215186706@qq.com
    password=password
    Test_Email.java 代码改为如下:
    package com.infomorrow.webtest.JuxinliTest.restdetect;
    
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Date;
    import java.util.Properties;
    
    import javax.mail.Authenticator;
    import javax.mail.BodyPart;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Multipart;
    import javax.mail.Transport;
    import javax.mail.internet.AddressException;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    
    public class Test_Email {
    

      public static void main(String args[]){

            try {

                send_email();

            }catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void send_email() throws IOException, AddressException, MessagingException{
            
            String to = "1215186706@qq.com";
            String subject = "subject";//邮件主题
            String content = "content";//邮件内容
            Properties properties = new Properties();
            InputStream resourceAsStream = null;
            try {
                 resourceAsStream = Object.class.getResourceAsStream("/email.properties");
                properties.load(resourceAsStream);
            } finally{
                if (resourceAsStream!=null) {
                    resourceAsStream.close();
                }
            }
            System.err.println("properties:"+properties);
            properties.put("mail.smtp.host", properties.get("mail.smtp.host"));
            properties.put("mail.smtp.port", properties.get("mail.smtp.port"));
            properties.put("mail.smtp.auth", "true");
            Authenticator authenticator = new Email_Authenticator(properties.get("username").toString(), properties.get("password").toString());
            javax.mail.Session sendMailSession = javax.mail.Session.getDefaultInstance(properties, authenticator);
            MimeMessage mailMessage = new MimeMessage(sendMailSession);
            mailMessage.setFrom(new InternetAddress(properties.get("username").toString()));
            // Message.RecipientType.TO属性表示接收者的类型为TO
            mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
            mailMessage.setSubject(subject, "UTF-8");
            mailMessage.setSentDate(new Date());
            // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
            Multipart mainPart = new MimeMultipart();
            // 创建一个包含HTML内容的MimeBodyPart
            BodyPart html = new MimeBodyPart();
            html.setContent(content.trim(), "text/html; charset=utf-8");
            mainPart.addBodyPart(html);
            mailMessage.setContent(mainPart);
            Transport.send(mailMessage);
        }
    }

    ok,到此为止。

  • 相关阅读:
    js将单个反斜杠转化为斜杠的问题
    HTML提供的6种空格
    JavaScript 内存管理
    JavaScript:4个常见的内存泄露
    正则多种匹配描述
    css3图片展示方式
    动态规划篇一:初见动态规划
    小球下落(Dropping Balls, Uva 679)
    破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988)
    铁轨(rails, ACM/ICPC CERC 1997,Uva 514)
  • 原文地址:https://www.cnblogs.com/amosli/p/3483624.html
Copyright © 2020-2023  润新知