zoukankan      html  css  js  c++  java
  • JAVA 使用qq邮箱发送邮件

    引入一个架包:

     gradle(

    "com.sun.mail:javax.mail:1.5.6",

    )

    代码如下:

        private static final String QQ_EMAIL_HOST="smtp.qq.com";//qq SMTP服务器 地址
        private static final String QQ_EMAIL_PORT="587";//qq SMTP服务器 端口(465这个端口有问题)
        private static final String QQ_EMAIL_FROM="xxxxxxxx@qq.com";//qq 发件人邮箱
        private static final String QQ_EMAIL_PASSWORD_CODE="xxxxxxxxxxxxx";//qq 16位的 授权码
    
       public static  void sendQQEmail(String[] to_address, String title, String content)  {
            // 创建Properties 类用于记录邮箱的一些属性
            Properties props = new Properties();
            // 表示SMTP发送邮件,必须进行身份验证
            props.put("mail.smtp.auth", "true");
            //此处填写SMTP服务器
            props.put("mail.smtp.host",QQ_EMAIL_HOST);
            //端口号,QQ邮箱给出了两个端口,465这个端口用的有问题,用这个587
            props.put("mail.smtp.port", QQ_EMAIL_PORT);
            // 此处填写你的发件人账号
            props.put("mail.user", QQ_EMAIL_FROM);
            // 此处的密码就是前面说的16位STMP口令(授权码)
            props.put("mail.password", QQ_EMAIL_PASSWORD_CODE);
            // 构建授权信息,用于进行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);
            // 设置发件人
            try {
                InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
                message.setFrom(form);
                // 设置收件人的邮箱:收件人的邮箱不限于qq邮箱,也可以是163邮箱……
                if(to_address.length>1){
                    for(String str:to_address){
                        //追加收件人
                        message.addRecipient(MimeMessage.RecipientType.TO, new InternetAddress(str,"UTF-8"));
                    }
                }else{
                    InternetAddress address = new InternetAddress(to_address[0]);
                    message.setRecipient(Message.RecipientType.TO, address);
                }
                // 设置邮件标题
                message.setSubject(title);
                // 设置邮件的内容体
                message.setContent(content, "text/html;charset=UTF-8");
                // 最后当然就是发送邮件啦
                Transport.send(message);
            }catch (AddressException a){
                a.printStackTrace();
            }catch (MessagingException m){
                m.printStackTrace();
            }catch (UnsupportedEncodingException un){
                un.printStackTrace();
            }
        }
  • 相关阅读:
    C# Net Core 使用 ClientWebSocket 实现 WebSocket 客户端
    C# Net 使用 RSA 加密解密 OpenSSL 生成的密码
    VS 代码提示默认不选中 解决办法
    C# While 超时设置
    C# 比较日期格式中的年月大小
    C#实现QQ邮箱IMAP之邮件处理
    Windwos服务之定时发送邮件(一)
    js基于“合成大西瓜的”碰撞模型(一)
    Windows下,通过运行直接打开软件
    C#爬取国家统计局五级地址
  • 原文地址:https://www.cnblogs.com/dwb91/p/7076310.html
Copyright © 2011-2022 走看看