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

    package com.dailywork.util;
     
    import java.io.UnsupportedEncodingException;
    import java.util.Properties;
     
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.BodyPart;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    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;
    import javax.mail.internet.MimeUtility;
     
     
    public class EmailManager { 
     
        private Properties props; //系统属性 
        private Session session; //邮件会话对象 
        private MimeMessage mimeMsg; //MIME邮件对象 
        private Multipart mp; //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象 
          
        /**
         * Constructor
         * @param smtp 邮件发送服务器
         */
        public EmailManager(){
            props = System.getProperties();   
            props.put("mail.smtp.auth","false"); 
            session = Session.getDefaultInstance(props, null);
            session.setDebug(true);
            mimeMsg = new MimeMessage(session);
            mp = new MimeMultipart(); 
        } 
     
        /**
         * Constructor
         * @param smtp 邮件发送服务器
         */
        public EmailManager(String smtp, String username, String password){ 
            props = System.getProperties();
            props.put("mail.smtp.auth","true"); 
            props.put("mail.smtp.host", smtp);
            props.put("username", username);
            props.put("password", password);
            session = Session.getDefaultInstance(props, null);
            session.setDebug(true);
            mimeMsg = new MimeMessage(session);
            mp = new MimeMultipart(); 
        } 
     
        /** 
         * 发送邮件
         */ 
        public boolean sendMail(String from, String[] to, String[] copyto, String subject, String content, String filename) {
            try {
                //设置发信人
                mimeMsg.setFrom(new InternetAddress(from)); 
                //设置接收人
                for (int i = 0; i < to.length; i++) {
                    mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to[i])); 
                }
                //设置抄送人
                for (int i = 0; i < copyto.length; i++) {
                    mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(copyto[i])); 
                }
                //设置主题
                mimeMsg.setSubject(subject);
                //设置正文
                BodyPart bp = new MimeBodyPart(); 
                bp.setContent(content, "text/html;charset=utf-8");
                mp.addBodyPart(bp);
                //设置附件
                bp = new MimeBodyPart();
                FileDataSource fileds = new FileDataSource(filename); 
                bp.setDataHandler(new DataHandler(fileds)); 
                bp.setFileName(MimeUtility.encodeText(fileds.getName(),"UTF-8","B"));
                mp.addBodyPart(bp); 
                mimeMsg.setContent(mp); 
                mimeMsg.saveChanges(); 
                //发送邮件
                if(props.get("mail.smtp.auth").equals("true")){
                    Transport transport = session.getTransport("smtp"); 
                    transport.connect((String)props.get("mail.smtp.host"), (String)props.get("username"), (String)props.get("password")); 
                    transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO)); 
                    transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.CC)); 
                    transport.close(); 
                }else{
                    Transport.send(mimeMsg);
                }
                System.out.println("邮件发送成功");
            } catch (MessagingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return true;
        }
         
        public static void main(String[] args){
            String smtp = "smtp.163.com";
            String username="xxx@163.com";
            String password="xxx";
            String from = "xxx@163.com";
            String[] to = {"xxx@qq.com"};
            String[] copyto = {"xxx@qq.com"};
            String subject = "主题";
            String content = "邮件内容";
           String filename = "D:\xxx.txt";
           EmailManager email = new EmailManager(smtp, username, password);
           email.sendMail(from, to, copyto, subject, content, filename);
        }
         
    }
  • 相关阅读:
    FreeMarker的<#if></#if>标签
    ubuntu的dpkg命令安装和卸载软件
    ubuntu建立软链接注意事项
    halo的工作目录,有一个是在代码里配置的,硬编码了
    Springboot的多环境配置
    idea中的springboot+gradle项目报错springboot configuration annotation processor not found in classpath
    maven中的pom.xml中的scope的作用
    设置idea的快捷键组合 设置为默认
    springboot无法查询到后台的数据
    ssh互信条件下的多机拷贝脚本和执行远程命令
  • 原文地址:https://www.cnblogs.com/chenhao1990/p/4628966.html
Copyright © 2011-2022 走看看