zoukankan      html  css  js  c++  java
  • JavaMail发送邮件

    引入了一个jar:javax.mail.jar

    直接上代码:

    InitMail:

    package com.hi.test;
    
    import java.util.Properties;
    
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.Address;
    import javax.mail.BodyPart;
    import javax.mail.Message;
    import javax.mail.Multipart;
    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;
    
    public class InitMail {
    
        private String smtp;// SMTP地址
        private String from;// 发件人
        private String to;// 收件人
        private String copyto;// 抄送
        private String subject;// 主题
        private String content;// 内容
        private String username;// 用户名
        private String password;// 密码
        private String filename;// 附件地址,如: S:downloadxxx.txt
    
        // =====================//
        private MimeMessage mimeMsg; // MIME邮件对象
        private Session session; // 邮件会话对象
        private Properties props; // 系统属性
        private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
    
        // ======================//
    
        @SuppressWarnings("unused")
        private InitMail() {
    
        }
    
        /*
         * 抄送和附件可以为空,其他不能为空
         */
        public InitMail(String smtp, String from, String to, String copyto,
                String subject, String content, String username, String password,
                String filename) {
    
            this.smtp = smtp;
            this.from = from;
            this.to = to;
            this.copyto = copyto;
            this.subject = subject;
            this.content = content;
            this.username = username;
            this.password = password;
            this.filename = filename;
    
        }
    
        public boolean sendMail() {
            boolean result = false;
            try {
                props = System.getProperties(); // 获得系统属性对象
                session = Session.getDefaultInstance(props); // 获得邮件会话对象    
                mimeMsg = new MimeMessage(session); // 创建MIME邮件对象
                
                mp = new MimeMultipart();
                
                
                mimeMsg.setFrom(new InternetAddress(from)); // 设置发信人
                
                
                mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));//设置收件人
                
                mimeMsg.setSubject(""+subject);//设置主题
                
                //如果抄送人不为空或null,则设置抄送人
                if(!(null==copyto||"".equals(copyto))){
                    mimeMsg.setRecipients(Message.RecipientType.CC,(Address[]) InternetAddress.parse(copyto));
                }
                
                BodyPart bp = new MimeBodyPart();
                bp.setContent("" + content, "text/html;charset=GBK");
                mp.addBodyPart(bp);
                
                
                //如果附件不为空或null,则设置附件
                if(!(null==filename||"".equals(filename))){
                    BodyPart bp2 = new MimeBodyPart();
                    FileDataSource fileds = new FileDataSource(filename);
                    bp2.setDataHandler(new DataHandler(fileds));
                    bp2.setFileName(fileds.getName());
                    mp.addBodyPart(bp2);
                }
    
                
                
                mimeMsg.setContent(mp);
                mimeMsg.saveChanges();
                
                
                Transport transport = session.getTransport("smtp");
                transport.connect(smtp, username,password);
                transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
                
                //如果抄送人不为空或null,则发送给抄送人
                if(!(null==copyto||"".equals(copyto))){
                transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC));
                }
                
                transport.close();
                result=true;        
                System.out.println("发送成功");
    
            } catch (Exception e) {
                System.out.println("出错,邮件发送失败");
                e.printStackTrace();
                
            }
    
            return result;
        }
        
    
    
    
        
    }

    SendMail:

    package com.hi.test;
    
    public class SendMail {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String smtp = "smtp.qq.com";  
            String from = "xxx@qq.com";  
            String to = "xxx@hotmail.com";   
            String subject = "test";  
            String content = "this is java mail test ";  
            String username="xxx";  
            String password="xxx";  
            String filename="S:\download\javax.mail.jar";
         
            
            InitMail mail=new InitMail(smtp, from, to, null,
                    subject,content, username, password,
                    filename);
            mail.sendMail();
    
        }
    
    }

    main中账号密码换成自己的就可以了,如果没有抄送和附件,传入null就可以了。具体的可以看代码,没什么太多需要说的。

  • 相关阅读:
    Raft论文的一些问题
    乱序日志同步成员变更方案
    OceanBase RPC机制简要说明
    OceanBase server处理网络包的回调逻辑
    比较下OceanBase的选举协议和Raft的选举协议的区别
    TokuDB调研文档
    给MySQL官方提交的bug report备忘
    记录一个__lll_lock_wait_private错误
    关于MySQL redo log,挖些坑,慢慢填
    A little problem for pt-pmp
  • 原文地址:https://www.cnblogs.com/acehalo/p/3902632.html
Copyright © 2011-2022 走看看