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: "留묒� 怨좊뵓"" 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: "留묒� 怨좊뵓"" 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: "留묒� 怨좊뵓"" 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