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

    package com.njhzlh.commons.utils;
    
    
    import com.njhzlh.slave.modules.jobs.TalcntcJob;
    import com.sun.mail.util.MailSSLSocketFactory;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import javax.activation.DataHandler;
    import javax.activation.DataSource;
    import javax.activation.FileDataSource;
    import javax.mail.*;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    import java.security.GeneralSecurityException;
    import java.util.Properties;
    
    /**
     * 发送邮件工具类
     *
     * @author baicheng
     */
    public class SendMailAcceUtils {
        private static final Logger LOG = LoggerFactory.getLogger(SendMailAcceUtils.class);
    
        /**
         * @param receive  收件人
         * @param subject  邮件主题
         * @param msg      邮件内容
         * @param filename 附件地址
         * @return
         * @throws GeneralSecurityException
         */
        public static boolean senMail(String receive, String subject, String msg, String urlPath, String filename, String mcc) throws GeneralSecurityException {
            if (receive == null || "".equals(receive)) {
                return false;
            }
            // 发件人电子邮箱
            final String from = PropertiesUtil.getProperties().getProperty("mail.from", "2506715686@qq.com");
            // 发件人电子邮箱密码
            final String pass = PropertiesUtil.getProperties().getProperty("mail.pass", "hecvswdmroftebje");
            // 指定发送邮件的主机为 smtp.qq.com
            String host = PropertiesUtil.getProperties().getProperty("mail.host", "smtp.qq.com"); // 邮件服务器
    
            // 获取系统属性
            Properties properties = System.getProperties();
            // 设置邮件服务器
            properties.setProperty("mail.smtp.host", host);
    
            properties.put("mail.smtp.auth", "true");
            MailSSLSocketFactory sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
            properties.put("mail.smtp.ssl.enable", "true");
            properties.put("mail.smtp.ssl.socketFactory", sf);
    
            Session session = Session.getDefaultInstance(properties, new Authenticator() {
                public PasswordAuthentication getPasswordAuthentication() { // qq邮箱服务器账户、第三方登录授权码
                    return new PasswordAuthentication(from, pass); // 发件人邮件用户名、密码
                }
            });
            try {
                // 创建默认的 MimeMessage 对象
                MimeMessage message = new MimeMessage(session);
    
                // Set From: 头部头字段
                message.setFrom(new InternetAddress(from));
    
                // Set To: 头部头字段
                message.addRecipient(Message.RecipientType.TO, new InternetAddress(receive));
                if (mcc != null && !"".equals(mcc)) {//抄送人
                    message.addRecipients(Message.RecipientType.CC, InternetAddress.parse(mcc));
                }
                //message.addRecipients(Message.RecipientType.TO, new InternetAddress[] {});
                // Set Subject: 主题文字
                message.setSubject(subject);
    
                // 创建消息部分
                BodyPart messageBodyPart = new MimeBodyPart();
    
                // 消息
                messageBodyPart.setText(msg);
    
                // 创建多重消息
                Multipart multipart = new MimeMultipart();
    
                // 设置文本消息部分
                multipart.addBodyPart(messageBodyPart);
    
                // 附件部分
                messageBodyPart = new MimeBodyPart();
                // 设置要发送附件的文件路径
                DataSource source = new FileDataSource(urlPath + filename);
                messageBodyPart.setDataHandler(new DataHandler(source));
    
                // messageBodyPart.setFileName(filename);
                // 处理附件名称中文乱码问题
                messageBodyPart.setFileName(filename);
                multipart.addBodyPart(messageBodyPart);
    
                // 发送完整消息
                message.setContent(multipart);
    
                // 发送消息
                Transport.send(message);
                // System.out.println("Sent message successfully....");
                return true;
            } catch (Exception e) {
                LOG.error("发送邮件异常",e);
            }
            return false;
        }
    
    
        /**
         * 发送邮件
         *
         * @param receive 接收人
         * @param subject 发送的主题
         * @param msg     发送消息
         * @param mcc     抄送人 可逗号分隔
         * @return
         */
        public static boolean senMailWithMessage(String receive, String subject, String msg, String mcc) {
            if (receive == null || "".equals(receive)) {
                return false;
            }
            try {
                // 发件人电子邮箱
                final String from = PropertiesUtil.getProperties().getProperty("mail.from", "2506715686@qq.com");
                // 发件人电子邮箱密码
                final String pass = PropertiesUtil.getProperties().getProperty("mail.pass", "hecvswdmroftebje");
                // 指定发送邮件的主机为 smtp.qq.com
                String host = PropertiesUtil.getProperties().getProperty("mail.host", "smtp.qq.com"); // 邮件服务器
    
                // 获取系统属性
                Properties properties = System.getProperties();
                // 设置邮件服务器
                properties.setProperty("mail.smtp.host", host);
    
                properties.put("mail.smtp.auth", "true");
                MailSSLSocketFactory sf = new MailSSLSocketFactory();
                sf.setTrustAllHosts(true);
                properties.put("mail.smtp.ssl.enable", "true");
                properties.put("mail.smtp.ssl.socketFactory", sf);
    
                Session session = Session.getDefaultInstance(properties, new Authenticator() {
                    public PasswordAuthentication getPasswordAuthentication() { // qq邮箱服务器账户、第三方登录授权码
                        return new PasswordAuthentication(from, pass); // 发件人邮件用户名、密码
                    }
                });
    
                // 创建默认的 MimeMessage 对象
                MimeMessage message = new MimeMessage(session);
    
                // Set From: 头部头字段
                message.setFrom(new InternetAddress(from));
    
                // Set To: 头部头字段
                message.addRecipient(Message.RecipientType.TO, new InternetAddress(receive));
                if (mcc != null && !"".equals(mcc)) {//抄送人
                    message.addRecipients(Message.RecipientType.CC, InternetAddress.parse(mcc));
                }
                //message.addRecipients(Message.RecipientType.TO, new InternetAddress[] {});
                // Set Subject: 主题文字
                message.setSubject(subject);
    
                // 创建消息部分
                BodyPart messageBodyPart = new MimeBodyPart();
    
                // 消息
                messageBodyPart.setText(msg);
    
                // 创建多重消息
                Multipart multipart = new MimeMultipart();
    
                // 设置文本消息部分
                multipart.addBodyPart(messageBodyPart);
    
                // 附件部分
                // messageBodyPart = new MimeBodyPart();
                // 设置要发送附件的文件路径
                //DataSource source = new FileDataSource(urlPath+filename);
                //messageBodyPart.setDataHandler(new DataHandler(source));
    
                // messageBodyPart.setFileName(filename);
                // 处理附件名称中文乱码问题
                //messageBodyPart.setFileName(filename);
                //multipart.addBodyPart(messageBodyPart);
    
                // 发送完整消息
                message.setContent(multipart);
    
                // 发送消息
                Transport.send(message);
                // System.out.println("Sent message successfully....");
                return true;
            } catch (Exception e) {
                LOG.error("发送邮件异常",e);
            }
            return false;
        }
    
    
    }
    

      

  • 相关阅读:
    171. Excel Sheet Column Number (Easy)
    349. Intersection of Two Arrays (Easy)
    453. Minimum Moves to Equal Array Elements (Easy)
    657. Judge Route Circle (Easy)
    CSS笔记
    保存页面状态
    UI开发总结
    ubuntu 下配置munin
    反向代理配置
    JavaScript 高级程序设计第二版
  • 原文地址:https://www.cnblogs.com/syscn/p/12208915.html
Copyright © 2011-2022 走看看