zoukankan      html  css  js  c++  java
  • java,qq邮箱发邮件工具类(需要部分修改)

    package com.iflytek.utils;
    
    
    import com.sun.mail.util.MailSSLSocketFactory;
    
    import javax.mail.*;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import java.util.Properties;
    
    //异步处理,多线程实现用户体验
    public class Sendmail extends Thread{
        //用于给用户发送邮件的邮箱
        private  String from="379831039@qq.com";
        //邮箱的用户名
        private String username="379831039@qq.com";
        //邮箱的密码
        private String password="";
        //发送邮件的服务器地址
        private String host="smtp.qq.com";
    
        private String whoEmail;
        private String context;
        private String title;
        public Sendmail(String whoEmail,String context,String title){
            this.whoEmail=whoEmail;
            this.context=context;
            this.title=title;
        }
    
        //重写run方法的实现,再run方法中发送邮件给指定用户
        @Override
        public void run() {
            try {
                Properties prop = new Properties();
                prop.setProperty("mail.host",host);//设置qq邮件服务器
                prop.setProperty("mail.transport.protocol","smtp");//邮件发送协议
                prop.setProperty("mail.smtp.auth","true");//需要验证用户名密码
    
                //关于QQ邮箱,还要设置SSL加密
                MailSSLSocketFactory sf = new MailSSLSocketFactory();
                sf.setTrustAllHosts(true);
                prop.put("mail.smtp.ssl.enable","true");
                prop.put("mail.smtp.ssl.socketFactory",sf);
    
    
                //使用JavaMail发送邮件的六个步骤
                //1.创建定义整个应用程序所需要的环境信息的Session对象
                //QQ独有
                Session session=Session.getDefaultInstance(prop, new Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username,password);
                    }
                });
    
                //开启Session的Debug模式,可以看到程序发送Email的运行状态
                session.setDebug(true);
    
                //2.通过Session对象获取transport对象
                Transport ts = session.getTransport();
    
                //3.使用邮箱的用户名和授权码连上邮件服务器
                ts.connect(host,username,password);
    
                //4.创建邮件
                //创建邮件对象
                MimeMessage message = new MimeMessage(session);
                //指定邮件的发件人
                message.setFrom(new InternetAddress(from));//发件人
                //指明邮件的收件人 2967603994@qq.com
                message.setRecipient(Message.RecipientType.TO,new InternetAddress(whoEmail));//收件人
                //邮件的标题
                message.setSubject(title);//邮件的标题
                message.setContent(context,"text/html;charset=UTF-8");
                message.saveChanges();
                //5.发送邮件
                ts.sendMessage(message,message.getAllRecipients());
    
                //6.关闭连接
                ts.close();
            }catch (Exception e){
                throw new RuntimeException(e);
            }
        }
    
    }
  • 相关阅读:
    56.字符流中第一个不重复的数
    55.表示数值的字符串
    54.正则表达式匹配
    53.构建乘积数组
    52.数组中重复的数字
    51.把字符串转化为整数
    50.不用加减乘除求和
    49.求1+2+3+.......+n
    The great pleasure in life is doing what people say you cannot do.
    mkcert本地 HTTPS 加密证书生成工具
  • 原文地址:https://www.cnblogs.com/qhqi/p/14164464.html
Copyright © 2011-2022 走看看