• java设计模式应用


    1、builder设计模式(邮件工具类)

    public class EmailMessage {
    
        private Message message;
    
        private static final String FROM = "sender";
        private static final String PASSWORD = "****";
        private static Session session;
    
        static {
            Properties properties = new Properties();
            // 连接协议
            properties.setProperty("mail.transport.protocol", "smtp");
            // 主机名
            properties.setProperty("mail.smtp.host", "smtp.qq.com");
            // 端口号
            properties.put("mail.smtp.port",465);
            properties.setProperty("mail.smtp.auth", "true");
            // 设置是否使用ssl安全连接 ---一般都使用
            properties.setProperty("mail.smtp.ssl.enable", "true");
            // 设置是否显示debug信息 true 会在控制台显示相关信息
            properties.setProperty("mail.debug", "true");
    
            session = Session.getInstance(properties);
        }
    
    
        public static void main(String[] args) throws MessagingException {
    
            new EmailMessage
                    .MessageBuilder(EmailMessage.session)
                    .sender(EmailMessage.FROM)
                    .receiver("receiver")
                    .subject("java发送邮件")
                    .content("<h3>你好,Jack</h3><p>很高兴你给的我的回信,这给了我很多灵感。</p>","text/html;charset=utf-8")
                    .builder().send();
        }
    
    
    
        public void send() throws MessagingException {
            Transport transport = session.getTransport();
            transport.connect(FROM,PASSWORD);
            transport.sendMessage(message,message.getAllRecipients());
            transport.close();
        }
    
        public EmailMessage(MessageBuilder builder) {
            this.message = builder.getMessage();
        }
    
    
        public static class MessageBuilder{
            private Message message;
    
            public MessageBuilder(Session session) {
                this.message = new MimeMessage(session);
            }
    
            public MessageBuilder sender(String sender) {
                try {
                    this.message.setFrom(new InternetAddress(sender));
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
                return this;
            }
    
            public MessageBuilder receiver(String receiver) {
                try {
                    message.setRecipient(Message.RecipientType.TO,new InternetAddress(receiver));
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
                return this;
            }
    
            public MessageBuilder receivers(List<String> receivers) {
                try {
                    InternetAddress[]  internetAddress = new InternetAddress[receivers.size()];
                    int i = 0;
                    for (String receiver : receivers) {
                        internetAddress[i] = new InternetAddress(receiver);
                        i = i + 1;
                    }
                    message.setRecipients(Message.RecipientType.TO,internetAddress);
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
                return this;
            }
    
            public MessageBuilder subject(String subject) {
                try {
                    this.message.setSubject(subject);
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
                return this;
            }
    
    
            public MessageBuilder content(String content,String contentType) {
                try {
                    this.message.setContent(content,contentType);
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
                return this;
            }
    
            public EmailMessage builder() {
                return new EmailMessage(this);
            }
    
            public Message getMessage() {
                return message;
            }
        }
    }
    

     

  • 相关阅读:
    shell脚本积累
    while,shift,until,case
    条件测试命令,if命令,双圆括号,双中括号
    seq命令,tr命令,sort命令,cut命令
    正则,grep命令详解
    Ansible实现批量管理服务器
    实时同步服务知识梳理
    RHEL7破解密码操作步骤
    运维核心基础知识之——MD5sum校验文件
    Linux运维基础提高之RAID卡和磁盘分区
  • 原文地址:https://www.cnblogs.com/snow-wolf-1/p/13387533.html
Copyright © 2020-2023  润新知