• Java邮件发送


    Java发送邮件示例

    
    import java.util.Properties;
    
    import javax.mail.BodyPart;
    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 org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    /**
     * 邮件发送工具类
     * 
     *
     */
    public class MailUtils {
        
        private static final Logger logger = LoggerFactory.getLogger(MailUtils.class);
    
        private MimeMessage mimeMsg = null;  //邮件内容
        private MailMessage message = null;  //邮件对象
        private Session session = null;
        private Properties props = null;     //邮件服务器信息
        
        private Multipart mp = null;
        
        public MailUtils() {}
    
        public void sendMail(MailMessage message, String smtpServer, boolean needAuth) throws Exception {
            
            this.message = message;
            mailSetting(smtpServer, needAuth);
            // modify by wy for 安全扫描
            Transport transport =null;
            try {
                mimeMsg.setContent(mp);
                mimeMsg.saveChanges();
                Session mailSession = Session.getInstance(props, null);
                transport = mailSession.getTransport("smtp");
                transport.connect((String) props.getProperty("mail.smtp.host"), message.getUsername(), message.getPassword());
                transport.sendMessage(mimeMsg, mimeMsg.getRecipients(javax.mail.Message.RecipientType.TO));
                if (message.getAddrsCopyTo() != null) {
                    transport.sendMessage(mimeMsg, mimeMsg.getRecipients(javax.mail.Message.RecipientType.CC));
                }
                
            } catch (Exception e) {
                logger.error(e.getMessage(), e);
                throw new Exception("邮件发送失败");
            }
            finally{
                if(null != transport){
                    transport.close();
                }
            }
            // end modify by wy
        }
        
        private void mailSetting(String smtpServer, boolean needAuth) throws Exception {
            
            if (props == null) {
                props = System.getProperties();
            }
            props.put("mail.smtp.host", smtpServer);
            if (needAuth) {
                props.put("mail.smtp.auth", "true");
            }
            try {
                session = Session.getDefaultInstance(props, null);
                mimeMsg = new MimeMessage(session);
                mp = new MimeMultipart();
            } catch (Exception e) {
                logger.error("邮件初始化失败,错误信息:", e);
                throw new Exception("邮件初始化失败.");
            }
            
            if (message == null) {
                throw new Exception("配置邮件信息为空.");
            }
            
            try {
                mimeMsg.setSubject(message.getSubject());
                BodyPart bp = new MimeBodyPart();
                bp.setContent(message.getContent(), "text/html;charset=gb2312");
                mp.addBodyPart(bp);
                mimeMsg.setFrom(new InternetAddress(message.getAddrFrom()));
                //修改为支持多个收件人
                String addTo = message.getAddrTo();
                String[] addTos = addTo.split(";");
                InternetAddress[] ias = new InternetAddress[addTos.length];
                for (int i = 0; i < addTos.length; i++) {
                    ias[i] = new InternetAddress(addTos[i]);
                }
                mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO, ias);
                
                if (message.getAddrsCopyTo() != null) {
                    mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC, InternetAddress.parse(message.getAddrsCopyTo()));
                }
            } catch (Exception e) {
                logger.error("邮件初始化失败,错误信息:" + e.getMessage(),e);
                throw new Exception("邮件初始化失败.");
            }
        }
        
    }
    

    
    import java.io.Serializable;
    
    /**
     * 邮件
     * 
     */
    public class MailMessage implements Serializable {
    
        private static final long serialVersionUID = -8538474071920662118L;
    
        private String subject;
        private String content;
        private String addrFrom;
        private String addrTo;
        private String addrsCopyTo;
        private String fileAffix;
    
        private String username;
        private String password;
    
        public String getSubject() {
            return subject;
        }
    
        public void setSubject(String subject) {
            this.subject = subject;
        }
    
        public String getContent() {
            return content;
        }
    
        public void setContent(String content) {
            this.content = content;
        }
    
        public String getAddrFrom() {
            return addrFrom;
        }
    
        public void setAddrFrom(String addrFrom) {
            this.addrFrom = addrFrom;
        }
    
        public String getAddrTo() {
            return addrTo;
        }
    
        public void setAddrTo(String addrTo) {
            this.addrTo = addrTo;
        }
    
        public String getAddrsCopyTo() {
            return addrsCopyTo;
        }
    
        public void setAddrsCopyTo(String addrsCopyTo) {
            this.addrsCopyTo = addrsCopyTo;
        }
    
        public String getFileAffix() {
            return fileAffix;
        }
    
        public void setFileAffix(String fileAffix) {
            this.fileAffix = fileAffix;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    }
    
    
  • 相关阅读:
    如何正确拆分数据集?常见的三种方法总结
    模型的度量指标和损失函数有什么区别?为什么在项目中两者都很重要?
    联合概率和条件概率的区别和联系
    Go 语言标准库之 log 包
    Go 语言基础之单元测试
    Thrift IDL
    Spring Cloud入门看这一篇就够了
    SpringCloud Alibaba Nacos服务组件
    上传文件至腾讯云服务器,上传失败?
    cobaltstrike4.0环境配置安装使用
  • 原文地址:https://www.cnblogs.com/claindoc/p/9850654.html
Copyright © 2020-2023  润新知