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; 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); } } 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); 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()]); } } 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() { 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() { 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() { 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; src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java
New file @@ -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; } } src/main/resources/mails/issueSendEmailTemplate1.html
New file @@ -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> src/main/resources/mails/issueSendEmailTemplate2.html
New file @@ -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> src/main/resources/mails/issueSendEmailTemplate3.html
New file @@ -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>