zoukankan      html  css  js  c++  java
  • 发送带附件的邮件

    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Properties;
    
    import javax.activation.DataHandler;
    import javax.activation.DataSource;
    import javax.activation.FileDataSource;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Multipart;
    import javax.mail.Session;
    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 EmailUtils {
        public static void main(String[] args) {
            Properties properties = new Properties();
            properties.put("from", "xxxx@163.com");
            properties.put("password", "****");
            String content = "this is a test email content";
            String subject = "this is a test email subject";
            List<String> filepathList = new ArrayList<String>();
            filepathList.add("C:\Documents and Settings\Administrator\桌面\测试.docx");
            List<String> toList = new ArrayList<String>();
            toList.add("xxxx@163.com");
            send(properties, subject, content, filepathList, toList);
        }
        
        public static boolean send(Properties properties,String subject,String content,List<String> filepathList,List<String> toList){
            String from = properties.getProperty("from");
            String passwd = properties.getProperty("password");
            String smtpServer = null;
            if(!properties.containsKey("smtpServer")){
                smtpServer = getTriableSmtpServer(from);
            }else{
                smtpServer = properties.getProperty("smtpServer");
            }
            return send(from, passwd, subject, content, smtpServer, filepathList, toList);
            
        }
        
        public static boolean send(String from ,String passwd,String subject,String content,List<String> filepathList,
                List<String> toList){
            String smtpServer = getTriableSmtpServer(from);
            return send(from, passwd, subject, content, smtpServer, filepathList, toList);
        }
    
        private static String getTriableSmtpServer(String from) {
            int begin = from.indexOf("@");
            int end = from.indexOf(".");
            String smtpServer = "smtp."+from.substring(begin+1,end)+".com";
            return smtpServer;
        }
    
        public static boolean send(String from, String passwd, String subject,
                String content, String smtpServer, List<String> filepathList,
                List<String> toList) {
            Properties properties = System.getProperties();
            properties.setProperty("mail.smtp.auth", "false");
            Session session = Session.getInstance(properties);
            session.setDebug(true);
            MimeMessage message = new MimeMessage(session);
            try {
                InternetAddress fromAddress = new InternetAddress(from);
                message.setFrom(fromAddress);
    
                InternetAddress[] toAddressArray = new InternetAddress[toList
                        .size()];
                for (int i = 0; i < toAddressArray.length; i++) {
                    toAddressArray[i] = new InternetAddress(toList.get(i));
                }
                message.setRecipients(Message.RecipientType.TO, toAddressArray);
                message.setSubject(subject);
    
                if (null == filepathList || filepathList.size() == 0) {
                    message.setContent(content, "text/html;charset=GBK");
                } else {
                    MimeBodyPart mimeBodyPart = new MimeBodyPart();
                    mimeBodyPart.setContent(content, "text/html;charset=GBK");
                    Multipart multipart = new MimeMultipart();
                    multipart.addBodyPart(mimeBodyPart);
    
                    for (String filepath : filepathList) {
                        mimeBodyPart = new MimeBodyPart();
                        DataSource ds = new FileDataSource(filepath);
                        mimeBodyPart.setDataHandler(new DataHandler(ds));
                        filepath = new String(new File(filepath).getName().getBytes(), "GBK");
                        mimeBodyPart.setFileName(filepath);
                        // mimeBodyPart.setFileName(new File(filepath).getName());
                        multipart.addBodyPart(mimeBodyPart);
                    }
                    message.setContent(multipart);
                }
                message.saveChanges();
                Transport transport = session.getTransport("smtp");
                transport.connect(smtpServer, from, passwd);
                transport.sendMessage(message, message.getAllRecipients());
                transport.close();
            } catch (AddressException e) {
                e.printStackTrace();
                return false;
            } catch (MessagingException e) {
                e.printStackTrace();
                return false;
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
            return true;
        }
    }
  • 相关阅读:
    io几乎没有,iowait却很高
    rcu使用遇到问题汇总
    Groovy In Action 笔记 (5) -- List 相关
    Groovy In Action 笔记 (4) -- String相关
    Groovy In Action 笔记 (3) -- 基本数据类型
    Groovy In Action 笔记 (2) -- '=='与‘equals’
    Groovy In Action 笔记 (1) -- 概述
    ansible notes
    grafana中如何根据label选取数据
    向node_exporter中添加新监控信息
  • 原文地址:https://www.cnblogs.com/dreammyle/p/5156537.html
Copyright © 2011-2022 走看看