From 2ba4d0379a7e5ac1d0fb36a8891bee4f0490f201 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 수, 01 12월 2021 18:19:42 +0900
Subject: [PATCH] 이슈 이메일 전송 백엔드 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java       |   12 
 src/main/java/kr/wisestone/owl/util/ConvertUtil.java                    |    5 
 src/main/resources/mails/issueSendEmailTemplate3.html                   |  161 ++++++++++++++
 src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java             |   56 +++++
 src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java           |   29 --
 src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java |    7 
 src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java               |   28 --
 src/main/java/kr/wisestone/owl/web/form/IssueForm.java                  |    2 
 src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java           |   29 --
 src/main/resources/mails/issueSendEmailTemplate2.html                   |  161 ++++++++++++++
 src/main/java/kr/wisestone/owl/constant/MailConstants.java              |    7 
 src/main/resources/mails/issueSendEmailTemplate1.html                   |  161 ++++++++++++++
 12 files changed, 561 insertions(+), 97 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MailConstants.java b/src/main/java/kr/wisestone/owl/constant/MailConstants.java
index fac7864..6742f6c 100644
--- a/src/main/java/kr/wisestone/owl/constant/MailConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MailConstants.java
@@ -31,11 +31,10 @@
     ISSUE_ADD("issue.add.title", "issueAddEmail"),  //  �씠�뒋 �깮�꽦
     ISSUE_REMOVE("issue.remove.title", "issueRemoveEmail"), //  �씠�뒋 �궘�젣
     ISSUE_SEND("issue.send.title", "issueSendEmail"), //  �씠�뒋 �씠硫붿씪 �쟾�떖
-    ISSUE_SEND_1("issue.send1.title", "issueSend1Email"), //  �씠�뒋 �씠硫붿씪 �쟾�떖
-    ISSUE_SEND_2("issue.send2.title", "issueSend2Email"), //  �씠�뒋 �씠硫붿씪 �쟾�떖
-    ISSUE_SEND_3("issue.send3.title", "issueSend3Email"); //  �씠�뒋 �씠硫붿씪 �쟾�떖
+    ISSUE_SEND_1("issue.send1.title", "issueSendEmailTemplate1"), //  �씠�뒋 �씠硫붿씪 �뀥�뵆由�1 �쟾�떖
+    ISSUE_SEND_2("issue.send2.title", "issueSendEmailTemplate2"), //  �씠�뒋 �씠硫붿씪 �뀥�뵆由�2 �쟾�떖
+    ISSUE_SEND_3("issue.send3.title", "issueSendEmailTemplate3"); //  �씠�뒋 �씠硫붿씪 �뀥�뵆由�3 �쟾�떖
     //  ISSUE_MODIFY("issue.modify.title", "issueModifyEmail"); //  �씠�뒋 �닔�젙
-
 
 
     private String title;
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
index 62f2b00..91a2575 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -2617,12 +2617,12 @@
         log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_ANOTHER_USER_SEND_EMAIL));
         //this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND, issueMap, null);
 
-        if(issueForm.getTemplate().equals("SEND1")){
-            this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND_1, issueMap, null);
-        }else if(issueForm.getTemplate().equals("SEND2")){
-            this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND_2, issueMap, null);
-        }else if(issueForm.getTemplate().equals("SEND3")){
-            this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND_3, issueMap, null);
+        if(issueForm.getTemplate().equals(EmailType.ISSUE_SEND_1.toString())){
+            this.systemEmailService.directEmail(ConvertUtil.ToArray(issueForm.getSendEmails()), EmailType.ISSUE_SEND_1, issueMap, null);
+        }else if(issueForm.getTemplate().equals(EmailType.ISSUE_SEND_2.toString())){
+            this.systemEmailService.directEmail(ConvertUtil.ToArray(issueForm.getSendEmails()), EmailType.ISSUE_SEND_2, issueMap, null);
+        }else if(issueForm.getTemplate().equals(EmailType.ISSUE_SEND_3.toString())){
+            this.systemEmailService.directEmail(ConvertUtil.ToArray(issueForm.getSendEmails()), EmailType.ISSUE_SEND_3, issueMap, null);
         }
     }
 
diff --git a/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java
index a51aff3..5d35f1e 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java
@@ -97,7 +97,6 @@
                         locale = CommonUtil.getUserLanguage(loginUser.getLanguage());
                     }
                 }
-
                 this.makeDirectContextEmail(emailType, params, locale, new String[]{CommonUtil.decryptAES128(sendUser)});
             }
         }
@@ -179,19 +178,19 @@
                 content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
                 break;
 
-            case ISSUE_SEND_1:    //  �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚
+            case ISSUE_SEND_1:    //  �씠�뒋 �씠硫붿씪 �뀥�뵆由�1濡� ���긽�옄�뿉寃� 諛쒖넚
                 mailConstants = MailConstants.ISSUE_SEND_1;
                 context = StringTemplateUtil.makeContext(params, locale);
                 content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
                 break;
 
-            case ISSUE_SEND_2:    //  �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚
+            case ISSUE_SEND_2:    //  �씠�뒋 �씠硫붿씪 �뀥�뵆由�2濡� ���긽�옄�뿉寃� 諛쒖넚
                 mailConstants = MailConstants.ISSUE_SEND_2;
                 context = StringTemplateUtil.makeContext(params, locale);
                 content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
                 break;
 
-            case ISSUE_SEND_3:    //  �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚
+            case ISSUE_SEND_3:    //  �씠�뒋 �씠硫붿씪 �뀥�뵆由�3濡� ���긽�옄�뿉寃� 諛쒖넚
                 mailConstants = MailConstants.ISSUE_SEND_3;
                 context = StringTemplateUtil.makeContext(params, locale);
                 content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
diff --git a/src/main/java/kr/wisestone/owl/util/ConvertUtil.java b/src/main/java/kr/wisestone/owl/util/ConvertUtil.java
index cc3d63a..c4470cf 100644
--- a/src/main/java/kr/wisestone/owl/util/ConvertUtil.java
+++ b/src/main/java/kr/wisestone/owl/util/ConvertUtil.java
@@ -549,4 +549,9 @@
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
         return mapper;
     }
+
+    public static String[] ToArray(List<String> list) {
+        return  list.toArray(new String[list.size()]);
+    }
+
 }
diff --git a/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java b/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java
index f18bbe2..e50f057 100644
--- a/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java
@@ -7,12 +7,9 @@
 import java.util.List;
 import java.util.Map;
 
-public class CompanyFieldForm {
-    private Long id;
-    private String name;
+public class CompanyFieldForm extends UsePartnerForm {
     private String manager;
     private String tel;
-    private String email;
     private String memo;
     private List<Long> removeIds = Lists.newArrayList();
 
@@ -25,22 +22,6 @@
             form.setRemoveIds(MapUtil.getLongs(params, "removeIds"));
         }
         return form;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
     }
 
     public String getManager() {
@@ -57,14 +38,6 @@
 
     public void setTel(String tel) {
         this.tel = tel;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public void setEmail(String email) {
-        this.email = email;
     }
 
     public String getMemo() {
diff --git a/src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java b/src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java
index 1e1fb23..475fef3 100644
--- a/src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java
@@ -7,13 +7,10 @@
 import java.util.List;
 import java.util.Map;
 
-public class HostingFieldForm {
-    private Long id;
+public class HostingFieldForm extends UsePartnerForm {
     private String code;
-    private String name;
     private String manager;
     private String tel;
-    private String email;
     private String memo;
     private List<Long> removeIds = Lists.newArrayList();
 
@@ -28,28 +25,12 @@
         return form;
     }
 
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
     public String getCode() {
         return code;
     }
 
     public void setCode(String code) {
         this.code = code;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
     }
 
     public String getManager() {
@@ -66,14 +47,6 @@
 
     public void setTel(String tel) {
         this.tel = tel;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public void setEmail(String email) {
-        this.email = email;
     }
 
     public String getMemo() {
diff --git a/src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java b/src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java
index 62331e9..e270f2a 100644
--- a/src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java
@@ -7,13 +7,10 @@
 import java.util.List;
 import java.util.Map;
 
-public class IspFieldForm {
-    private Long id;
+public class IspFieldForm extends UsePartnerForm {
     private String code;
-    private String name;
     private String manager;
     private String tel;
-    private String email;
     private String memo;
     private List<Long> removeIds = Lists.newArrayList();
 
@@ -28,14 +25,6 @@
         return form;
     }
 
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
     public String getCode() {
         return code;
     }
@@ -44,13 +33,6 @@
         this.code = code;
     }
 
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
 
     public String getManager() {
         return manager;
@@ -66,14 +48,6 @@
 
     public void setTel(String tel) {
         this.tel = tel;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public void setEmail(String email) {
-        this.email = email;
     }
 
     public String getMemo() {
diff --git a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
index 87aade8..863a569 100644
--- a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -15,6 +15,8 @@
  * Created by wisestone on 2018-01-03.
  */
 public class IssueForm {
+
+
     private Long id;
     private Long projectId;
     private Long issueStatusId;
diff --git a/src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java b/src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java
new file mode 100644
index 0000000..ddc5014
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java
@@ -0,0 +1,56 @@
+package kr.wisestone.owl.web.form;
+
+import com.google.common.collect.Lists;
+import kr.wisestone.owl.util.ConvertUtil;
+import kr.wisestone.owl.util.MapUtil;
+
+import java.util.List;
+import java.util.Map;
+
+public class UsePartnerForm {
+    private Long id;
+    private String name;
+    private String email;
+    private String emailTemplate;
+
+    public UsePartnerForm() {
+    }
+    public static UsePartnerForm make(Map<String, Object> params) {
+        UsePartnerForm form = ConvertUtil.convertMapToClass(params, UsePartnerForm.class);
+
+        return form;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getEmailTemplate() {
+        return emailTemplate;
+    }
+
+    public void setEmailTemplate(String emailTemplate) {
+        this.emailTemplate = emailTemplate;
+    }
+
+}
diff --git a/src/main/resources/mails/issueSendEmailTemplate1.html b/src/main/resources/mails/issueSendEmailTemplate1.html
new file mode 100644
index 0000000..92598a7
--- /dev/null
+++ b/src/main/resources/mails/issueSendEmailTemplate1.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<table align="center" style="width: 600px; margin:0 auto; background-color: #fff; box-shadow: 0px 20px 50px rgba(0,0,0,0.05);font-size: 14px; line-height: 1.43;font-family: &quot;留묒� 怨좊뵓&quot;" xmlns:th="http://www.thymeleaf.org">
+    <tr>
+        <td style="background-color: #fff;">
+            <a href="" th:href="${url}" target="_blank"><img alt="OWL ITS" src="http://wisestone.kr/owlsolution/logo-dark.png" style="padding: 20px 60px"></a>
+        </td>
+    </tr>
+    <tr>
+        <td style="background-color: #fff; padding: 40px 70px 0 70px; border-top: 1px solid rgba(0,0,0,0.05);">
+            <h1 style="margin-top: 0px;color:#030962;">
+                �씠�뒋 �뀥�뵆由� 1
+            </h1>
+        </td>
+    </tr>
+    <tr>
+        <td style="background-color: #fff; padding: 20px 70px;color: #636363; font-size: 13px;">
+            (<span style="color:#4B72FA;font-weight:bold;" th:utext="${projectKey}"></span>-<span style="color:#4B72FA;font-weight:bold;" th:utext="${issueNumber}"></span>)
+            <span style="color:#000;" th:utext="${toUser}"></span>�떂�씠 �씠�뒋 �솗�씤�쓣 �슂泥��뻽�뒿�땲�떎.
+        </td>
+    </tr>
+    <tr>
+        <td style="padding: 0px 70px;font-size: 13px;">
+            <table style="width:450px; background-color: #F4F4F4; margin: 20px 0px 40px;" align="center">
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.issueName')}">�씠�뒋 紐�</span>
+                        </div>
+                        <div style="font-weight:bold">
+                            <a href="" th:href="${issueLink}" style="color:#4B72FA; text-decoration:underline;" target="_blank" th:utext="${title}"></a>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.content')}">�궡�슜</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${description}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; width:50%">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.issueType')}">�씠�뒋 �쑀�삎</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${issueTypeName}"></div>
+                    </td>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.issueStatus')}">�씠�뒋 �긽�깭</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${issueStatusName}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; width:50%">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.assignee')}">�떞�떦�옄</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${assignees}"></div>
+                    </td>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.schedule')}">�씪�젙</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${period}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; width:50%">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.priority')}">以묒슂�룄</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${severityName}"></div>
+                    </td>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.severity')}">�슦�꽑�닚�쐞</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${priorityName}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.project')}">�봽濡쒖젥�듃</span>
+                        </div>
+                        <div style="font-weight:bold;">
+                            <a href="" th:href="${projectLink}" style="color:#4B72FA; text-decoration:underline;" target="_blank" th:utext="${projectName}"></a>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.projectKey')}">�봽濡쒖젥�듃 �궎</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${projectKey}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;border-right: none;" colspan="2">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.register')}">�벑濡앹옄</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${register}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;border-right: none;" colspan="2">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.customField')}">�궗�슜�옄 �젙�쓽 �븘�뱶</span>
+                        </div>
+                        <div style="font-weight:bold;">
+                            <table>
+                                <th:block th:each="customField : ${customFields}">
+                                    <tr>
+                                        <td th:text="${customField.name}"></td>
+                                        <td th:text="${customField.useValue}"></td>
+                                    </tr>
+                                </th:block>
+                            </table>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;border-right: none;" colspan="2">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.attachedFile')}">泥⑤��뙆�씪</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${attachedFiles}"></div>
+                    </td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td style="text-align:center;padding-bottom:40px;">
+            <span style="color: #000; font-weight:bold; font-size:16px;">OWL ITS TEAM</span><br/>
+            <a href="" th:href="${url}" target="_blank" style="text-decoration: underline; color: #4B72FA;" th:utext="${url}">
+                https://owlsolution.io</a><br/><br/>
+            <span style="font-size:12px;color: #8D929D;">If you have any questions, contact us at <a href="mailto:supportowl@wisestone.kr" style="text-decoration: underline; color: #4B72FA;">supportowl@wisestone.kr</a></span>
+        </td>
+    </tr>
+    <tr>
+        <td style="background-color: #f1f4fd; padding: 30px; text-align: center;color: #A5A5A5; font-size: 12px; margin-bottom: 5px;">
+            <span th:utext="${#messages.msg('common.common.sendMail')}">蹂� 硫붿씪�� 諛쒖떊�쟾�슜 硫붿씪�엯�땲�떎.</span><br/>
+            <span style="color: #A5A5A5; font-size: 10px;">
+            Copyright 짤 WISESTONE CO., Ltd. All Rights Reserved.
+          </span>
+        </td>
+    </tr>
+</table>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/mails/issueSendEmailTemplate2.html b/src/main/resources/mails/issueSendEmailTemplate2.html
new file mode 100644
index 0000000..a9dee1b
--- /dev/null
+++ b/src/main/resources/mails/issueSendEmailTemplate2.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<table align="center" style="width: 600px; margin:0 auto; background-color: #fff; box-shadow: 0px 20px 50px rgba(0,0,0,0.05);font-size: 14px; line-height: 1.43;font-family: &quot;留묒� 怨좊뵓&quot;" xmlns:th="http://www.thymeleaf.org">
+    <tr>
+        <td style="background-color: #fff;">
+            <a href="" th:href="${url}" target="_blank"><img alt="OWL ITS" src="http://wisestone.kr/owlsolution/logo-dark.png" style="padding: 20px 60px"></a>
+        </td>
+    </tr>
+    <tr>
+        <td style="background-color: #fff; padding: 40px 70px 0 70px; border-top: 1px solid rgba(0,0,0,0.05);">
+            <h1 style="margin-top: 0px;color:#030962;">
+                �씠�뒋 �뀥�뵆由� 2
+            </h1>
+        </td>
+    </tr>
+    <tr>
+        <td style="background-color: #fff; padding: 20px 70px;color: #636363; font-size: 13px;">
+            (<span style="color:#4B72FA;font-weight:bold;" th:utext="${projectKey}"></span>-<span style="color:#4B72FA;font-weight:bold;" th:utext="${issueNumber}"></span>)
+            <span style="color:#000;" th:utext="${toUser}"></span>�떂�씠 �씠�뒋 �솗�씤�쓣 �슂泥��뻽�뒿�땲�떎.
+        </td>
+    </tr>
+    <tr>
+        <td style="padding: 0px 70px;font-size: 13px;">
+            <table style="width:450px; background-color: #F4F4F4; margin: 20px 0px 40px;" align="center">
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.issueName')}">�씠�뒋 紐�</span>
+                        </div>
+                        <div style="font-weight:bold">
+                            <a href="" th:href="${issueLink}" style="color:#4B72FA; text-decoration:underline;" target="_blank" th:utext="${title}"></a>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.content')}">�궡�슜</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${description}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; width:50%">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.issueType')}">�씠�뒋 �쑀�삎</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${issueTypeName}"></div>
+                    </td>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.issueStatus')}">�씠�뒋 �긽�깭</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${issueStatusName}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; width:50%">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.assignee')}">�떞�떦�옄</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${assignees}"></div>
+                    </td>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.schedule')}">�씪�젙</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${period}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; width:50%">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.priority')}">以묒슂�룄</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${severityName}"></div>
+                    </td>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.severity')}">�슦�꽑�닚�쐞</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${priorityName}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.project')}">�봽濡쒖젥�듃</span>
+                        </div>
+                        <div style="font-weight:bold;">
+                            <a href="" th:href="${projectLink}" style="color:#4B72FA; text-decoration:underline;" target="_blank" th:utext="${projectName}"></a>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.projectKey')}">�봽濡쒖젥�듃 �궎</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${projectKey}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;border-right: none;" colspan="2">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.register')}">�벑濡앹옄</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${register}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;border-right: none;" colspan="2">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.customField')}">�궗�슜�옄 �젙�쓽 �븘�뱶</span>
+                        </div>
+                        <div style="font-weight:bold;">
+                            <table>
+                                <th:block th:each="customField : ${customFields}">
+                                    <tr>
+                                        <td th:text="${customField.name}"></td>
+                                        <td th:text="${customField.useValue}"></td>
+                                    </tr>
+                                </th:block>
+                            </table>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;border-right: none;" colspan="2">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.attachedFile')}">泥⑤��뙆�씪</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${attachedFiles}"></div>
+                    </td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td style="text-align:center;padding-bottom:40px;">
+            <span style="color: #000; font-weight:bold; font-size:16px;">OWL ITS TEAM</span><br/>
+            <a href="" th:href="${url}" target="_blank" style="text-decoration: underline; color: #4B72FA;" th:utext="${url}">
+                https://owlsolution.io</a><br/><br/>
+            <span style="font-size:12px;color: #8D929D;">If you have any questions, contact us at <a href="mailto:supportowl@wisestone.kr" style="text-decoration: underline; color: #4B72FA;">supportowl@wisestone.kr</a></span>
+        </td>
+    </tr>
+    <tr>
+        <td style="background-color: #f1f4fd; padding: 30px; text-align: center;color: #A5A5A5; font-size: 12px; margin-bottom: 5px;">
+            <span th:utext="${#messages.msg('common.common.sendMail')}">蹂� 硫붿씪�� 諛쒖떊�쟾�슜 硫붿씪�엯�땲�떎.</span><br/>
+            <span style="color: #A5A5A5; font-size: 10px;">
+            Copyright 짤 WISESTONE CO., Ltd. All Rights Reserved.
+          </span>
+        </td>
+    </tr>
+</table>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/mails/issueSendEmailTemplate3.html b/src/main/resources/mails/issueSendEmailTemplate3.html
new file mode 100644
index 0000000..631dba1
--- /dev/null
+++ b/src/main/resources/mails/issueSendEmailTemplate3.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<table align="center" style="width: 600px; margin:0 auto; background-color: #fff; box-shadow: 0px 20px 50px rgba(0,0,0,0.05);font-size: 14px; line-height: 1.43;font-family: &quot;留묒� 怨좊뵓&quot;" xmlns:th="http://www.thymeleaf.org">
+    <tr>
+        <td style="background-color: #fff;">
+            <a href="" th:href="${url}" target="_blank"><img alt="OWL ITS" src="http://wisestone.kr/owlsolution/logo-dark.png" style="padding: 20px 60px"></a>
+        </td>
+    </tr>
+    <tr>
+        <td style="background-color: #fff; padding: 40px 70px 0 70px; border-top: 1px solid rgba(0,0,0,0.05);">
+            <h1 style="margin-top: 0px;color:#030962;">
+                �씠�뒋 �뀥�뵆由� 3
+            </h1>
+        </td>
+    </tr>
+    <tr>
+        <td style="background-color: #fff; padding: 20px 70px;color: #636363; font-size: 13px;">
+            (<span style="color:#4B72FA;font-weight:bold;" th:utext="${projectKey}"></span>-<span style="color:#4B72FA;font-weight:bold;" th:utext="${issueNumber}"></span>)
+            <span style="color:#000;" th:utext="${toUser}"></span>�떂�씠 �씠�뒋 �솗�씤�쓣 �슂泥��뻽�뒿�땲�떎.
+        </td>
+    </tr>
+    <tr>
+        <td style="padding: 0px 70px;font-size: 13px;">
+            <table style="width:450px; background-color: #F4F4F4; margin: 20px 0px 40px;" align="center">
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.issueName')}">�씠�뒋 紐�</span>
+                        </div>
+                        <div style="font-weight:bold">
+                            <a href="" th:href="${issueLink}" style="color:#4B72FA; text-decoration:underline;" target="_blank" th:utext="${title}"></a>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.content')}">�궡�슜</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${description}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; width:50%">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.issueType')}">�씠�뒋 �쑀�삎</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${issueTypeName}"></div>
+                    </td>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.issueStatus')}">�씠�뒋 �긽�깭</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${issueStatusName}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; width:50%">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.assignee')}">�떞�떦�옄</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${assignees}"></div>
+                    </td>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.schedule')}">�씪�젙</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${period}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; width:50%">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.priority')}">以묒슂�룄</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${severityName}"></div>
+                    </td>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.severity')}">�슦�꽑�닚�쐞</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${priorityName}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.project')}">�봽濡쒖젥�듃</span>
+                        </div>
+                        <div style="font-weight:bold;">
+                            <a href="" th:href="${projectLink}" style="color:#4B72FA; text-decoration:underline;" target="_blank" th:utext="${projectName}"></a>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none; border-right: none;">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.projectKey')}">�봽濡쒖젥�듃 �궎</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${projectKey}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;border-right: none;" colspan="2">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.register')}">�벑濡앹옄</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${register}"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;border-right: none;" colspan="2">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.customField')}">�궗�슜�옄 �젙�쓽 �븘�뱶</span>
+                        </div>
+                        <div style="font-weight:bold;">
+                            <table>
+                                <th:block th:each="customField : ${customFields}">
+                                    <tr>
+                                        <td th:text="${customField.name}"></td>
+                                        <td th:text="${customField.useValue}"></td>
+                                    </tr>
+                                </th:block>
+                            </table>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td style="padding: 20px 40px; color: #111; border: 1px solid #e7e7e7; border-left: none;border-right: none;" colspan="2">
+                        <div style="color: #9a9a9a; font-size: 12px; font-weight:bold; margin-bottom: 3px;">
+                            <span th:utext="${#messages.msg('issue.add.attachedFile')}">泥⑤��뙆�씪</span>
+                        </div>
+                        <div style="font-weight:bold;" th:utext="${attachedFiles}"></div>
+                    </td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td style="text-align:center;padding-bottom:40px;">
+            <span style="color: #000; font-weight:bold; font-size:16px;">OWL ITS TEAM</span><br/>
+            <a href="" th:href="${url}" target="_blank" style="text-decoration: underline; color: #4B72FA;" th:utext="${url}">
+                https://owlsolution.io</a><br/><br/>
+            <span style="font-size:12px;color: #8D929D;">If you have any questions, contact us at <a href="mailto:supportowl@wisestone.kr" style="text-decoration: underline; color: #4B72FA;">supportowl@wisestone.kr</a></span>
+        </td>
+    </tr>
+    <tr>
+        <td style="background-color: #f1f4fd; padding: 30px; text-align: center;color: #A5A5A5; font-size: 12px; margin-bottom: 5px;">
+            <span th:utext="${#messages.msg('common.common.sendMail')}">蹂� 硫붿씪�� 諛쒖떊�쟾�슜 硫붿씪�엯�땲�떎.</span><br/>
+            <span style="color: #A5A5A5; font-size: 10px;">
+            Copyright 짤 WISESTONE CO., Ltd. All Rights Reserved.
+          </span>
+        </td>
+    </tr>
+</table>
+</body>
+</html>
\ No newline at end of file

--
Gitblit v1.8.0