From ef4c533ebacc2cdc97e518f30e9a9350004fcdfb Mon Sep 17 00:00:00 2001 From: dujinkim Date: Mon, 28 Apr 2025 02:13:30 +0000 Subject: ~20250428 작업사항 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/mail/layouts/base.hbs | 22 ++++ lib/mail/mailer.ts | 39 +++++- lib/mail/partials/footer.hbs | 8 ++ lib/mail/partials/header.hbs | 7 + lib/mail/templates/admin-created.hbs | 91 +++---------- lib/mail/templates/admin-email-changed.hbs | 108 ++++------------ lib/mail/templates/cbe-invitation.hbs | 108 ++++++++++++++++ lib/mail/templates/contract-sign-request.hbs | 116 +++++++++++++++++ lib/mail/templates/investigation-request.hbs | 31 +++++ lib/mail/templates/otp.hbs | 92 +++---------- lib/mail/templates/pq-submitted-admin.hbs | 84 ++++++++++++ lib/mail/templates/pq-submitted-vendor.hbs | 93 +++++++++++++ lib/mail/templates/pq.hbs | 86 ++++++++++++ lib/mail/templates/project-pq.hbs | 99 ++++++++++++++ lib/mail/templates/rfq-invite.hbs | 145 ++++++--------------- lib/mail/templates/vendor-active.hbs | 76 ++++------- lib/mail/templates/vendor-additional-info.hbs | 89 +++---------- lib/mail/templates/vendor-invitation.hbs | 104 +++------------ lib/mail/templates/vendor-pq-comment.hbs | 165 ++++++------------------ lib/mail/templates/vendor-pq-status.hbs | 69 ++++------ lib/mail/templates/vendor-project-pq-status.hbs | 42 ++++++ 21 files changed, 952 insertions(+), 722 deletions(-) create mode 100644 lib/mail/layouts/base.hbs create mode 100644 lib/mail/partials/footer.hbs create mode 100644 lib/mail/partials/header.hbs create mode 100644 lib/mail/templates/cbe-invitation.hbs create mode 100644 lib/mail/templates/contract-sign-request.hbs create mode 100644 lib/mail/templates/investigation-request.hbs create mode 100644 lib/mail/templates/pq-submitted-admin.hbs create mode 100644 lib/mail/templates/pq-submitted-vendor.hbs create mode 100644 lib/mail/templates/pq.hbs create mode 100644 lib/mail/templates/project-pq.hbs create mode 100644 lib/mail/templates/vendor-project-pq-status.hbs (limited to 'lib/mail') diff --git a/lib/mail/layouts/base.hbs b/lib/mail/layouts/base.hbs new file mode 100644 index 00000000..2e18f035 --- /dev/null +++ b/lib/mail/layouts/base.hbs @@ -0,0 +1,22 @@ + + + + + {{subject}} + + + + + + +
+ + + + +
+ {{{body}}} +
+
+ + diff --git a/lib/mail/mailer.ts b/lib/mail/mailer.ts index 200a0ed9..3474a373 100644 --- a/lib/mail/mailer.ts +++ b/lib/mail/mailer.ts @@ -15,14 +15,45 @@ const transporter = nodemailer.createTransport({ }, }); -// Handlebars 템플릿 로더 함수 -function loadTemplate(templateName: string, data: Record) { +// // Handlebars 템플릿 로더 함수 +// function loadTemplate(templateName: string, data: Record) { +// const templatePath = path.join(process.cwd(), 'lib', 'mail', 'templates', `${templateName}.hbs`); +// const source = fs.readFileSync(templatePath, 'utf8'); +// const template = handlebars.compile(source); +// return template(data); +// } +function applyLayout(layoutName: string, content: string, context: Record) { + const layoutPath = path.join(process.cwd(), 'lib', 'mail', 'layouts', `${layoutName}.hbs`); + const layoutSource = fs.readFileSync(layoutPath, 'utf8'); + const layoutTemplate = handlebars.compile(layoutSource); + return layoutTemplate({ ...context, body: content }); +} + +// Partials 자동 등록 +function registerPartials() { + const partialsDir = path.join(process.cwd(), 'lib', 'mail', 'partials'); + const filenames = fs.readdirSync(partialsDir); + + filenames.forEach((filename) => { + const name = path.parse(filename).name; + const filepath = path.join(partialsDir, filename); + const source = fs.readFileSync(filepath, 'utf8'); + handlebars.registerPartial(name, source); // {{> header }}, {{> footer }} + }); +} + + +// 템플릿 불러오기 + layout/partials 적용 +function loadTemplate(templateName: string, context: Record, layout = 'base') { + registerPartials(); + const templatePath = path.join(process.cwd(), 'lib', 'mail', 'templates', `${templateName}.hbs`); const source = fs.readFileSync(templatePath, 'utf8'); const template = handlebars.compile(source); - return template(data); -} + const content = template(context); // 본문 먼저 처리 + return applyLayout(layout, content, context); // base.hbs로 감싸기 +} handlebars.registerHelper('t', function(key: string, options: any) { // options.hash에는 Handlebars에서 넘긴 named parameter들(location=location 등)이 들어있음 return i18next.t(key, options.hash || {}); diff --git a/lib/mail/partials/footer.hbs b/lib/mail/partials/footer.hbs new file mode 100644 index 00000000..06aae57d --- /dev/null +++ b/lib/mail/partials/footer.hbs @@ -0,0 +1,8 @@ + + + + +
+

© {{currentYear}} EVCP. {{t "email.vendor.invitation.copyright"}}

+

{{t "email.vendor.invitation.no_reply"}}

+
diff --git a/lib/mail/partials/header.hbs b/lib/mail/partials/header.hbs new file mode 100644 index 00000000..7898c82e --- /dev/null +++ b/lib/mail/partials/header.hbs @@ -0,0 +1,7 @@ + + + + +
+ eVCP +
diff --git a/lib/mail/templates/admin-created.hbs b/lib/mail/templates/admin-created.hbs index 7be7f15d..3db6c433 100644 --- a/lib/mail/templates/admin-created.hbs +++ b/lib/mail/templates/admin-created.hbs @@ -1,78 +1,25 @@ - - - - - {{t "adminCreated.title" lng=language}} - - - -
- -
- - -
+{{> header logoUrl=logoUrl }} -

{{t "adminCreated.title" lng=language}}

+

+ {{t "adminCreated.title" lng=language}} +

-

- {{t "adminCreated.greeting" lng=language}}, {{name}}. -

+

+ {{t "adminCreated.greeting" lng=language}}, {{name}}. +

-

- {{t "adminCreated.body1" lng=language}} -

+

+ {{t "adminCreated.body1" lng=language}} +

-

- {{t "adminCreated.loginCTA" lng=language}} -

+

+ + {{t "adminCreated.loginCTA" lng=language}} + +

-

- {{t "adminCreated.supportMsg" lng=language}} -

+

+ {{t "adminCreated.supportMsg" lng=language}} +

- -
- - \ No newline at end of file +{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file diff --git a/lib/mail/templates/admin-email-changed.hbs b/lib/mail/templates/admin-email-changed.hbs index 7b8ca473..fb88feab 100644 --- a/lib/mail/templates/admin-email-changed.hbs +++ b/lib/mail/templates/admin-email-changed.hbs @@ -1,90 +1,30 @@ - - - - - {{t "adminEmailChanged.title" lng=language}} - - - -
- -
- - -
+{{> header logoUrl=logoUrl }} - -

{{t "adminEmailChanged.title" lng=language}}

+

+ {{t "adminEmailChanged.title" lng=language}} +

- -

- {{t "adminEmailChanged.greeting" lng=language}}, {{name}}. -

+

+ {{t "adminEmailChanged.greeting" lng=language}}, {{name}}. +

- -

- {{t "adminEmailChanged.body.intro" lng=language}} -

-

- {{t "adminEmailChanged.body.oldEmail" lng=language}}: {{oldEmail}}
- {{t "adminEmailChanged.body.newEmail" lng=language}}: {{newEmail}} -

+

+ {{t "adminEmailChanged.body.intro" lng=language}} +

- -

- - {{t "adminEmailChanged.loginCTA" lng=language}} - -

+

+ {{t "adminEmailChanged.body.oldEmail" lng=language}}: {{oldEmail}}
+ {{t "adminEmailChanged.body.newEmail" lng=language}}: {{newEmail}} +

- -

- {{t "adminEmailChanged.supportMsg" lng=language}} -

+

+ + {{t "adminEmailChanged.loginCTA" lng=language}} + +

- - -
- - \ No newline at end of file +

+ {{t "adminEmailChanged.supportMsg" lng=language}} +

+ +{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file diff --git a/lib/mail/templates/cbe-invitation.hbs b/lib/mail/templates/cbe-invitation.hbs new file mode 100644 index 00000000..1d5e8eba --- /dev/null +++ b/lib/mail/templates/cbe-invitation.hbs @@ -0,0 +1,108 @@ +{{#> layout title="상업 입찰 평가 (CBE) 알림"}} +

안녕하세요, {{contactName}}

+ +

[RFQ {{rfqCode}}]에 대한 상업 입찰 평가(CBE)가 생성되어 알려드립니다. + 아래 세부 정보를 확인하시고 필요한 조치를 취해주시기 바랍니다.

+ +
+

RFQ 정보

+
RFQ 코드: {{rfqCode}}
+
프로젝트 코드: {{projectCode}}
+
프로젝트명: {{projectName}}
+ {{#if dueDate}} +
마감일: {{dueDate}}
+ {{/if}} +
+ +
+

CBE 평가 세부사항

+
협력업체: {{vendorName}} ({{vendorCode}})
+ {{#if paymentTerms}} +
결제 조건: {{paymentTerms}}
+ {{/if}} + {{#if incoterms}} +
Incoterms: {{incoterms}}
+ {{/if}} + {{#if deliverySchedule}} +
배송 일정: {{deliverySchedule}}
+ {{/if}} +
+ + {{#if description}} +
+

RFQ 설명

+

{{description}}

+
+ {{/if}} + + {{#if notes}} +
+

비고

+

{{notes}}

+
+ {{/if}} + +

+ + CBE 평가 확인하기 + +

+ +

이 이메일에 첨부된 파일을 확인하시거나, 시스템에 로그인하여 자세한 정보를 확인해 주세요. + 추가 문의사항이 있으시면 구매담당자에게 연락해 주시기 바랍니다.

+ +

감사합니다.
eVCP 팀

+{{/layout}} +{{!-- {{#> layout title="상업 입찰 평가 (CBE) 알림"}} +

안녕하세요, {{contactName}}

+ +

[RFQ {{rfqCode}}]에 대한 상업 입찰 평가(CBE)가 생성되어 알려드립니다. + 아래 세부 정보를 확인하시고 필요한 조치를 취해주시기 바랍니다.

+ +
+

RFQ 정보

+
RFQ 코드: {{rfqCode}}
+
프로젝트 코드: {{projectCode}}
+
프로젝트명: {{projectName}}
+ {{#if dueDate}} +
마감일: {{dueDate}}
+ {{/if}} +
+ +
+

CBE 평가 세부사항

+
협력업체: {{vendorName}} ({{vendorCode}})
+ {{#if paymentTerms}} +
결제 조건: {{paymentTerms}}
+ {{/if}} + {{#if incoterms}} +
Incoterms: {{incoterms}}
+ {{/if}} + {{#if deliverySchedule}} +
배송 일정: {{deliverySchedule}}
+ {{/if}} +
+ + {{#if description}} +
+

RFQ 설명

+

{{description}}

+
+ {{/if}} + + {{#if notes}} +
+

비고

+

{{notes}}

+
+ {{/if}} + + + +

이 이메일에 첨부된 파일을 확인하시거나, 시스템에 로그인하여 자세한 정보를 확인해 주세요. + 추가 문의사항이 있으시면 구매담당자에게 연락해 주시기 바랍니다.

+{{/layout}} --}} \ No newline at end of file diff --git a/lib/mail/templates/contract-sign-request.hbs b/lib/mail/templates/contract-sign-request.hbs new file mode 100644 index 00000000..410fdf6a --- /dev/null +++ b/lib/mail/templates/contract-sign-request.hbs @@ -0,0 +1,116 @@ + + + + + + 기본계약서 서명 요청 + + + +
+
+ +

기본계약서 서명 요청

+
+ +
+

안녕하세요, {{vendorName}}님.

+ +

귀사에 기본계약서 서명을 요청드립니다.

+ +
+

계약서 정보:

+

계약서 종류: {{templateName}}

+

계약 번호: {{contractId}}

+
+ +

아래 버튼을 클릭하여 계약서를 확인하고 서명해 주시기 바랍니다.

+ + + +

본 링크는 30일간 유효하며, 이후에는 새로운 서명 요청이 필요합니다.

+ +

서명 과정에서 문의사항이 있으시면 담당자에게 연락해 주시기 바랍니다.

+ +

감사합니다.

+ +
+

담당자 연락처:
+ 이메일: contact@company.com
+ 전화: 02-123-4567

+
+
+ + +
+ + \ No newline at end of file diff --git a/lib/mail/templates/investigation-request.hbs b/lib/mail/templates/investigation-request.hbs new file mode 100644 index 00000000..a69091a5 --- /dev/null +++ b/lib/mail/templates/investigation-request.hbs @@ -0,0 +1,31 @@ +{{> header logoUrl=logoUrl }} + +

협력업체 실사 요청

+ +

안녕하세요,

+ +

협력업체 실사 요청이 접수되었습니다.

+ +
+

협력업체 ID:

+
    + {{#each vendorIds}} +
  • {{this}}
  • + {{/each}} +
+ + {{#if notes}} +

메모:

+

{{notes}}

+ {{/if}} +
+ +

+ 벤더 포털 바로가기 +

+ +

문의사항이 있으시면 시스템 관리자에게 연락해 주세요.

+ +

감사합니다.
eVCP 팀

+ +{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file diff --git a/lib/mail/templates/otp.hbs b/lib/mail/templates/otp.hbs index adeda416..48df33f9 100644 --- a/lib/mail/templates/otp.hbs +++ b/lib/mail/templates/otp.hbs @@ -1,77 +1,27 @@ - - - - - - {{subject}} - - - -
-

{{t "verifyYourEmailTitle"}}

-

{{t "greeting"}}, {{name}}

+{{> header logoUrl=logoUrl }} -

- {{t "receivedSignInAttempt" location=location}} -

+

{{t "verifyYourEmailTitle"}}

-

- {{t "enterCodeInstruction"}} -

+

{{t "greeting"}}, {{name}}

-

{{otp}}

+

+ {{t "receivedSignInAttempt" location=location}} +

-

- {{verificationUrl}} -

+

+ {{t "enterCodeInstruction"}} +

+

+ {{otp}} +

- -
- - \ No newline at end of file +

+ {{verificationUrl}} +

+ +

+ {{t "securityWarning"}} +

+ +{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file diff --git a/lib/mail/templates/pq-submitted-admin.hbs b/lib/mail/templates/pq-submitted-admin.hbs new file mode 100644 index 00000000..0db3d6e4 --- /dev/null +++ b/lib/mail/templates/pq-submitted-admin.hbs @@ -0,0 +1,84 @@ + + + + + + PQ Submission Notification + + + +
+

PQ Submission Notification

+
+ +
+

New PQ Submission Received

+ +

A new {{#if isProjectPQ}}project-specific{{else}}general{{/if}} PQ has been submitted and is ready for your review.

+ +
+

Vendor Name: {{vendorName}}

+

Vendor ID: {{vendorId}}

+ {{#if isProjectPQ}} +

Project Name: {{projectName}}

+

Project ID: {{projectId}}

+ {{/if}} +

Submission Date: {{submittedDate}}

+
+ +

Please review this submission at your earliest convenience.

+ + Review PQ Submission +
+ + + + \ No newline at end of file diff --git a/lib/mail/templates/pq-submitted-vendor.hbs b/lib/mail/templates/pq-submitted-vendor.hbs new file mode 100644 index 00000000..9cf8e133 --- /dev/null +++ b/lib/mail/templates/pq-submitted-vendor.hbs @@ -0,0 +1,93 @@ + + + + + + PQ Submission Confirmation + + + +
+

PQ Submission Confirmation

+
+ +
+
+

Thank you! Your {{#if isProjectPQ}}project-specific{{else}}general{{/if}} PQ has been successfully submitted.

+
+ +

Submission Details

+ +
+

Vendor Name: {{vendorName}}

+ {{#if isProjectPQ}} +

Project Name: {{projectName}}

+ {{/if}} +

Submission Date: {{submittedDate}}

+
+ +

Our team will review your submission and contact you if any additional information is needed.

+ +

You can access your dashboard to track the status of your submissions and manage your vendor profile.

+ + Go to Vendor Dashboard +
+ + + + \ No newline at end of file diff --git a/lib/mail/templates/pq.hbs b/lib/mail/templates/pq.hbs new file mode 100644 index 00000000..78fb6fcd --- /dev/null +++ b/lib/mail/templates/pq.hbs @@ -0,0 +1,86 @@ + + + + + + PQ Invitation + + + +
+

eVCP Pre-Qualification Invitation

+
+ +
+

Dear {{vendorName}},

+ +

You have been invited to submit your Pre-Qualification (PQ) information for our vendor database. Completing this process will allow us to consider your company for future projects and procurement opportunities.

+ +

To submit your PQ information:

+
    +
  1. Click on the button below to access our vendor portal
  2. +
  3. Log in to your account (or register if you haven't already)
  4. +
  5. Navigate to the PQ section in your dashboard
  6. +
  7. Complete all required information about your company, capabilities, and experience
  8. +
+ +
+ Access Vendor Portal +
+ +

Maintaining up-to-date PQ information in our system is essential for your company to be considered for upcoming opportunities.

+ +

If you have any questions or need assistance, please contact our vendor management team.

+ +

We look forward to learning more about your company and potentially working together on future projects.

+ +

Best regards,
+ The eVCP Team

+
+ + + + \ No newline at end of file diff --git a/lib/mail/templates/project-pq.hbs b/lib/mail/templates/project-pq.hbs new file mode 100644 index 00000000..2ecbd3a2 --- /dev/null +++ b/lib/mail/templates/project-pq.hbs @@ -0,0 +1,99 @@ + + + + + + Project PQ Invitation + + + +
+

eVCP Project PQ Invitation

+
+ +
+

Dear {{vendorName}},

+ +

You have been selected to participate in the Pre-Qualification (PQ) process for the following project:

+ +
+

Project Code: {{projectCode}}

+

Project Name: {{projectName}}

+
+ +

This is an important step in our vendor selection process. Please complete the Project PQ questionnaire at your earliest convenience.

+ +

To submit your Project PQ:

+
    +
  1. Click on the button below to access our vendor portal
  2. +
  3. Log in to your account (or register if you haven't already)
  4. +
  5. Navigate to the PQ section where you'll find the Project PQ for {{projectCode}}
  6. +
  7. Complete all required information
  8. +
+ +
+ Access Vendor Portal +
+ +

Please note that completing this Project PQ is a prerequisite for being considered for this project.

+ +

If you have any questions or need assistance, please contact our vendor management team.

+ +

Thank you for your participation.

+ +

Best regards,
+ The eVCP Team

+
+ + + + \ No newline at end of file diff --git a/lib/mail/templates/rfq-invite.hbs b/lib/mail/templates/rfq-invite.hbs index 25bd96eb..8ec20a99 100644 --- a/lib/mail/templates/rfq-invite.hbs +++ b/lib/mail/templates/rfq-invite.hbs @@ -1,116 +1,43 @@ - - - - - {{t "rfqInvite.title" lng=language}} #{{rfqCode}} - - - -
- -
- - -
+{{> header logoUrl=logoUrl }} - -

- {{t "rfqInvite.heading" lng=language}} - #{{rfqCode}} -

+

+ {{t "rfqInvite.heading" lng=language}} #{{rfqCode}} +

- -

- {{t "rfqInvite.greeting" lng=language}}, Vendor #{{vendorId}}. -

+

+ {{t "rfqInvite.greeting" lng=language}}, Vendor #{{vendorId}}. +

- -

- {{t "rfqInvite.bodyIntro" lng=language}} -
- {{t "rfqInvite.projectName" lng=language}}: {{projectName}}
- {{t "rfqInvite.projectCode" lng=language}}: {{projectCode}}
- {{t "rfqInvite.dueDate" lng=language}}: {{dueDate}}
- {{t "rfqInvite.description" lng=language}}: {{description}} -

+

+ {{t "rfqInvite.bodyIntro" lng=language}}
+ {{t "rfqInvite.projectName" lng=language}}: {{projectName}}
+ {{t "rfqInvite.projectCode" lng=language}}: {{projectCode}}
+ {{t "rfqInvite.dueDate" lng=language}}: {{dueDate}}
+ {{t "rfqInvite.description" lng=language}}: {{description}} +

- -

- {{t "rfqInvite.itemListTitle" lng=language}} -

-
    - {{#each items}} -
  • - {{this.itemCode}} - ({{this.quantity}} {{this.uom}}) - - {{this.description}} -
  • - {{/each}} -
+

+ {{t "rfqInvite.itemListTitle" lng=language}} +

- -

- {{t "rfqInvite.moreDetail" lng=language}} -

- - {{t "rfqInvite.viewButton" lng=language}} - +
    + {{#each items}} +
  • {{this.itemCode}} ({{this.quantity}} {{this.uom}}) - {{this.description}}
  • + {{/each}} +
- -

- {{t "rfqInvite.supportMsg" lng=language}} -

+

+ {{t "rfqInvite.moreDetail" lng=language}} +

- - -
- - \ No newline at end of file +

+ + {{t "rfqInvite.viewButton" lng=language}} + +

+ +

+ {{t "rfqInvite.supportMsg" lng=language}} +

+ +{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file diff --git a/lib/mail/templates/vendor-active.hbs b/lib/mail/templates/vendor-active.hbs index 6458e2fb..a2643f94 100644 --- a/lib/mail/templates/vendor-active.hbs +++ b/lib/mail/templates/vendor-active.hbs @@ -1,51 +1,25 @@ - - - - - 벤더 등록이 완료되었습니다 - - - -
-
-

벤더 등록이 완료되었습니다

-
- -
-

{{vendorName}} 귀하,

- -

축하합니다! 귀사의 벤더 등록이 완료되었으며 벤더 정보가 당사 시스템에 성공적으로 등록되었습니다.

- -

귀사의 벤더 코드는 다음과 같습니다:

-
{{vendorCode}}
- -

향후 모든 의사소통 및 거래 시 이 벤더 코드를 사용해 주십시오. 이제 벤더 포털에 접속하여 계정 관리, 발주서 확인 및 인보이스 제출을 할 수 있습니다.

- -

- 벤더 포털 접속 -

- -

벤더 계정에 관한 질문이나 도움이 필요하시면 당사 벤더 관리팀에 문의해 주십시오.

- -

파트너십에 감사드립니다.

- -

감사합니다.
- eVCP 팀

-
- - -
- - \ No newline at end of file +{{> header logoUrl=logoUrl }} + +

협력업체 등록이 완료되었습니다

+ +

{{vendorName}} 귀하,

+ +

축하합니다! 귀사의 협력업체 등록이 완료되었으며 협력업체 정보가 당사 시스템에 성공적으로 등록되었습니다.

+ +

귀사의 협력업체 코드는 다음과 같습니다:

+ +
+ {{vendorCode}} +
+ +

이 코드를 사용하여 포털에 접속하고 계정을 관리할 수 있습니다.

+ +

+ 협력업체 포털 접속 +

+ +

문의사항이 있으시면 협력업체 관리팀에 연락해 주세요.

+ +

감사합니다.
eVCP 팀

+ +{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file diff --git a/lib/mail/templates/vendor-additional-info.hbs b/lib/mail/templates/vendor-additional-info.hbs index 9d93bb7b..17d9b130 100644 --- a/lib/mail/templates/vendor-additional-info.hbs +++ b/lib/mail/templates/vendor-additional-info.hbs @@ -1,76 +1,19 @@ - - - - - - {{t "email.additionalInfo.title"}} - - - -
-

{{t "email.additionalInfo.header"}}

-
+{{#> layout title=(t "email.additionalInfo.title")}} +

{{t "email.additionalInfo.greeting" vendorName=vendorName}}

-
-

{{t "email.additionalInfo.greeting" vendorName=vendorName}}

- -

{{t "email.additionalInfo.messageP1"}}

- -

{{t "email.additionalInfo.messageP2"}}

- -

{{t "email.additionalInfo.messageP3"}}

- - - -

{{t "email.additionalInfo.messageP4"}}

- -

{{t "email.additionalInfo.closing"}}

- -

EVCP Team

-
+

{{t "email.additionalInfo.messageP1"}}

+ +

{{t "email.additionalInfo.messageP2"}}

+ +

{{t "email.additionalInfo.messageP3"}}

-