비밀번호찾기 및 메일보내기 스킨

This commit is contained in:
sungro815 2026-01-15 11:16:02 +09:00
parent 4d29259cc2
commit f9463e7a46
12 changed files with 1056 additions and 0 deletions

View File

@ -0,0 +1,51 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">출금 알림</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
ㅇㅇㅇ님!<br>
회원님의 입금계좌로 KRW가 출금되어 하기와 같이 안내 드립니다.
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:10px 5px;border-top:1px solid #000;border-bottom:1px solid #BABABA">
<p style="margin:0;padding: 0 0 10px;color:#E4574B; font-weight: bold">출금 정보</p>
출금일시 : 2017 00.00. 00:00:00<br>
출금 금액 : 0000 KRW<br>
은행 : 00은행<br>
계좌번호 : 0000000000<br>
예금주 : 000
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding: 30px 0 0;">
<a href="#" style="text-decoration:none;padding:10px 20px;border-radius:3px;color:#FFF;background-color:#E4574B;font-size:14px;font-weight:bold">출금내역 확인하기</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="http://<?= $const[" _ROOT_DOMAIN_"]?>" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">핀포유 바로가기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,157 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" style="width:100%; max-width:800px; padding:0; text-align:left; background-color:#fff; margin:0 auto; font-family:'맑은 고딕', malgun, dotum,'돋움'; color:#454545; letter-spacing:-1px !important; word-break:keep-all; line-height:1.3 !important;">
<!-- top logo -->
<tbody>
<tr>
<td>
<table border="0" cellpadding="0" cellspacing="0" style="width:100%;">
<tbody>
<tr>
<td style="padding:3% 3%; background-color:#ccd5f9">
<h1 style="margin:0; font-size:0;">
<img src="https://www.pinforyou.com/img/top_logo.png" border="0" style="width:100px; height:auto; vertical-align:top;"></a>
</h1>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<!-- // top logo -->
<!-- container -->
<tr>
<td style="padding:0 7.5%;" align='center'>
<p style="margin:20px 0 0; font-size:20px; line-height:26px;">
<strong style="color:#0669fa; font-weight:bold;"> 회원님 </strong>온라인 상품권 쇼핑채널 <strong style="color:#0669fa; font-weight:bold;">"핀포유"</strong> 입니다.
</p>
<h3 style="font-size:30px; margin:12px 0 0; line-height:46px;">
고객님은 <strong style="color:#0669fa; font-weight:bold;"><?=$_PRODUCT_?> <?=$_MONEY_?></strong> 지급대상입니다.
</h3>
</td>
</tr>
<tr>
<td style="padding:0 7.5%;" align='left'>
<div style="margin-top:25px; padding:3.38% 4.41% 3.82%; background-color:#f9f9f9; border:1px solid #eee; border-radius:18px;">
<div style="color:#222; font-size:18px; font-weight:bold; line-height:30px;text-align:center">
상품권 수령방법
</div>
<div style="margin:24px 0 0; padding-top:27px; border-top:1px solid #eee;">
<span style="display:inline-block; color:#444; font-size:16px;line-height:35px">
1. 핀포유(pinforyou.com) 접속 <br>
2. 로그인 "고객센터>1:1문의" 접수 <br>
&nbsp;&nbsp;ㄴ문의분류선택 : "이벤트문의" <br>
&nbsp;&nbsp;ㄴ문의제목 : 이벤트참여 <br>
&nbsp;&nbsp;ㄴ문의내용 : <?=$_PRODUCT_?> 주세요. <br>
</span>
</div>
</div>
<div style="text-align:center;">
<a href="https://cash.pinforyou.com/theme/mong/tk/exchange.php#form" target="_blank" style="display:inline-block; margin-top:30px; padding:18px 29px 16px; color:#222; font-size:16px; font-weight:bold; text-decoration:none; border:1px solid #444; border-radius:9px;" rel="noreferrer noopener">PINFORYOU 바로가기</a>
</div>
<table border="0" cellpadding="0" cellspacing="0" style="margin-top:41px;">
<tbody>
<tr>
<td style="width:15px; padding-top:6px; vertical-align:top;">
<span style="display:inline-block; width:5px; height:5px; margin-bottom:2px; background-color:#444; border-radius:50%; vertical-align:middle;"></span>
</td>
<td style="color:#222; font-size:14px; line-height:28px;">1:1문의로 이벤트참여 문의글만 남겨도 <?=$_PRODUCT_?>(을)를 100% 무조건 지급!</td>
</tr>
<tr>
<td style="width:15px; padding-top:6px; vertical-align:top;">
<span style="display:inline-block; width:5px; height:5px; margin-bottom:2px; background-color:#444; border-radius:50%; vertical-align:middle;"></span>
</td>
<td style="color:#222; font-size:14px; line-height:28px;">상품권은 핀번호 형태로 지급되며, 상담사가 대상자 확인 답변으로 지급드립니다.</td>
</tr>
<tr>
<td style="width:15px; padding-top:6px; vertical-align:top;">
<span style="display:inline-block; width:5px; height:5px; margin-bottom:2px; background-color:#444; border-radius:50%; vertical-align:middle;"></span>
</td>
<td style="color:#222; font-size:14px; line-height:28px;"> 이벤트 추가 지급 이벤트가 있으니 지금 바로 참여해서 상품권 받고 추가 이벤트도 참여하세요!</td>
</tr>
</tbody>
</table>
<div style="margin-top:50px;">
<a href="https://pinforyou.com" target="_blank" style="text-decoration:none;" rel="noreferrer noopener">
<table border="0" cellpadding="0" cellspacing="0" style="width:100%; background:#ddf9fb; border-radius:20px;">
<tbody>
<tr>
<td style="width:25%; padding-left:7.35%;">
<img src="https://cash.pinforyou.com/theme/mong/img/logo_sample_wht.png" alt="핀포유매입" style="width:100%; min-width:40px; display:block; border:0;" loading="lazy">
</td>
<td style="width:auto; padding-top:4.41%; padding-bottom:4.41%; padding-left:38px; color:#222; font-size:18px; font-weight:bold; line-height:28px;">
핀포유만의 특별혜택<BR>
"입금수수료 무료! 1분안에 자동입금!"
</td>
<td style="width:8%; padding-right: 5.88%;">
<img src="https://img.credit.co.kr/resource/img/zkm/rzm/em/banner_arrow.png" alt="컴퓨터 아이콘" style="display:block; border:0;" loading="lazy">
</td>
</tr>
</tbody>
</table>
</a>
</div>
</td>
</tr>
<tr>
<td>
<!-- 수신동의 이메일 안내 -->
<div style="margin-top:47px; padding:4% 7.5%; color:#767676; font-size:12px; border-top:1px solid #bababa;">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="width:12px; padding-top:6px; vertical-align:top;">
<span style="display:inline-block; width:5px; height:5px; margin-bottom:2px; background-color:#bababa; border-radius:50%;"></span>
</td>
<td style="padding:2px 0 2px; line-height:22px;">2023 06 23 발송 이메일입니다.</td>
</tr>
<tr>
<td style="width:12px; padding-top:6px; vertical-align:top;">
<span style="display:inline-block; width:5px; height:5px; margin-bottom:2px; background-color:#bababa; border-radius:50%;"></span>
</td>
<td style="padding:2px 0 2px; line-height:22px;"> 이메일은 발신전용 이메일로 [2023 06 23]기준,<br>이메일 수신동의 여부를 확인한 결과 회원님께서 수신에 동의하신 것으로 확인되어 발송되었습니다.</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
<!-- // container -->
<!-- footer -->
<tr>
<td style="padding:4.365% 7.5% 6.25%; background-color:#f5f5f5;">
<div style="color:#767676; font-size:12px; line-height:20px;">
<span style="display:inline-block; margin-right:10px; padding-right:10px; background:url('https://img.credit.co.kr/resource/img/zkm/rzm/em/footer_line.png') no-repeat right 5px;">
<strong style="display:inline-block; margin-right:10px; font-weight:bold;">주소</strong>전북특별자치도 전주시 완산구 용머리로 94, 4 451
</span>
<span style="display:inline-block; margin-right:10px; padding-right:10px; background:url('https://img.credit.co.kr/resource/img/zkm/rzm/em/footer_line.png') no-repeat right 5px;">
<strong style="display:inline-block; margin-right:10px; font-weight:bold;">대표이사</strong>송병수
</span>
<span style="display:inline-block;">
<strong style="display:inline-block; margin-right:10px; font-weight:bold;">사업자등록번호</strong>121-88-01191
</span>
</div>
<div style="margin-top:1px; color:#767676; font-size:12px; line-height:20px;">
<span style="display:inline-block; margin-right:10px; padding-right:10px; background:url('https://img.credit.co.kr/resource/img/zkm/rzm/em/footer_line.png') no-repeat right 5px;">
<strong style="display:inline-block; margin-right:10px; font-weight:bold;">전화</strong>1833-4856
</span>
<span style="display:inline-block; margin-right:10px; padding-right:10px; background:url('https://img.credit.co.kr/resource/img/zkm/rzm/em/footer_line.png') no-repeat right 5px;">
<strong style="display:inline-block; margin-right:10px; font-weight:bold;">통신판매업신고번호</strong> 2018-전주완산-0705
</span>
<span style="display:inline-block;">master@plusmaker.co.kr</span>
</div>
<p style="margin:14px 0 0; color:#444; font-size:12px; letter-spacing:-0.5px;">Copyright (c) 2018 Pin For You. All Rights Reserved.</p>
</td>
</tr>
<!-- // footer -->
</tbody>
</table>

View File

@ -0,0 +1,40 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">고객센터 답변</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
<a href='mailto:<?=$_EMAIL_?>' target='_blank' style='color: rgb(17, 85, 204);'><?=$_EMAIL_?></a> 회원님.<br>
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding:30px 0">
<a href="<?=$_LINK_?>" style="text-decoration:none;padding:10px 20px;border-radius:3px;color:#FFF;background-color:#E4574B;font-size:14px;font-weight:bold">고객센터</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="http://<?=$const["_ROOT_DOMAIN_"]?>" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">핀포유 바로가기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,55 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">입금 알림</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
ㅇㅇㅇ님!<br>
회원님의 계정으로 암호화폐가 입금되어 하기와 같이 안내 드립니다.
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:10px 5px;border-top:1px solid #000;border-bottom:1px solid #BABABA">
<p style="margin:0;padding: 0 0 10px;color:#E4574B; font-weight: bold">입금 정보</p>
충전 일시 : 2017 00.00. 00:00:00<br>
금액 : 0000 KRW<br>
보내는사람 : 외부 지갑<br>
거래번호 : 00000000000000000000000000000
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:15px 0">
하기 입금 내역 확인하기를 클릭 하시면 회원님의 입금 내역을 확인 하실 있습니다.
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding: 30px 0 0;">
<a href="#" style="text-decoration:none;padding:10px 20px;border-radius:3px;color:#FFF;background-color:#E4574B;font-size:14px;font-weight:bold">입금내역 확인하기</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="http://<?= $const[" _ROOT_DOMAIN_"]?>" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">핀포유 바로가기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,42 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">휴면계정 해제하기</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
<a href='mailto:<?=$_EMAIL_?>' target='_blank' style='color: rgb(17, 85, 204);'><?=$_EMAIL_?></a> 회원님.<br>
아래 버튼을 클릭해 휴면계정 해제 페이지로 이동하세요.<br>
해당 URL은 3시간 동안만 유효합니다.
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding:30px 0">
<a href="<?=$_LINK_?>" style="text-decoration:none;padding:10px 20px;border-radius:3px;color:#FFF;background-color:#E4574B;font-size:14px;font-weight:bold">휴면계정 해제</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="http://<?=$const["_ROOT_DOMAIN_"]?>" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">핀포유 바로가기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,41 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">이메일 주소 인증</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
<?=$_EMAIL_?> 회원님.<br>
이메일 인증 버튼을 클릭하여 이메일 인증을 완료 하시기 바랍니다.
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding:30px 0">
<a href="<?=$_LINK_?>" style="text-decoration:none;padding:10px 20px;border-radius:3px;color:#FFF;background-color:#E4574B;font-size:14px;font-weight:bold">이메일 인증</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="http://<?= $const["_ROOT_DOMAIN_"]?>" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">핀포유 바로가기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,57 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">로그인 알림</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
ㅇㅇㅇ님!<br> 핀포유(<a href="http://<?= $const["_ROOT_DOMAIN_"] ?>">http://<?= $const["_ROOT_DOMAIN_"] ?></a>)에 로그인 되었습니다.
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:10px 5px;border-top:1px solid #000;border-bottom:1px solid #BABABA">
<p style="margin:0;padding: 0 0 10px;color:#E4574B; font-weight: bold">접속 정보</p>
로그인 일시 : 2017 00.00<br>
접속장소 : 국가<br>
IP : <br>
접속기기<br>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:15px 0">
회원님이 로그인 하시지 않은 알림을 받으신 경우, 계정의 보안을 위해
<span style="color:#E4574B">비밀번호를 즉시 변경</span> 하시기 바라며, 고객센터로 문의 하시기 바랍니다.
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding: 30px 0 0;">
<a href="#" style="text-decoration:none;padding:10px 20px;border-radius:3px;color:#FFF;background-color:#E4574B;font-size:14px;font-weight:bold">비밀번호 변경</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding:15px 20px">
비밀번호 변경을 누르시면 비밀번호 변경 페이지로 이동합니다.
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="#" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">고객센터 문의하기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,41 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">회원정보수정</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
회원님.<br>
<a href='mailto:<?=$_EMAIL_?>' target='_blank' style='color: rgb(17, 85, 204);'><?=$_EMAIL_?></a> 계정의 회원정보가 수정되었음을 안내해 드립니다.
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding:30px 0">
<a href="<?=$_LINK_?>" style="text-decoration:none;padding:10px 20px;border-radius:3px;color:#FFF;background-color:#E4574B;font-size:14px;font-weight:bold">고객센터</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="http://<?=$const["_ROOT_DOMAIN_"]?>" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">핀포유 바로가기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,46 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">고객센터 1:1 고객문의 알림</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
<a href='mailto:<?=$_EMAIL_?>' target='_blank' style='color: rgb(17, 85, 204);'><?=$_EMAIL_?></a><br>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:30px 0">
<B>제목 : <?=$_TITLE_?></B><br>
등록시간 : <?=$_DATETIME_?>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:30px 0">
<?=nl2br($_CONTENT_)?>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="http://<?=$const["_ROOT_DOMAIN_"]?>" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">핀포유 바로가기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,42 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">비밀번호 찾기</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
<a href='mailto:<?=$_EMAIL_?>' target='_blank' style='color: rgb(17, 85, 204);'><?=$_EMAIL_?></a> 회원님.<br>
아래 버튼을 클릭해 비밀번호 변경페이지로 이동하세요.<br>
해당 URL은 3시간 동안만 유효합니다.
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding:30px 0">
<a href="<?=$_LINK_?>" style="text-decoration:none;padding:10px 20px;border-radius:3px;color:#FFF;background-color:#E4574B;font-size:14px;font-weight:bold">비밀번호 변경</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="http://<?=$const["_ROOT_DOMAIN_"]?>" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">핀포유 바로가기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,70 @@
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
$const = get_defined_constants();
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E4574B;color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;max-width:600px;letter-spacing:-1px;line-height:1.5">
<tbody>
<tr>
<td align="left" valign="top" style="background-color: #E4574B;color:#FFF">
<h1 style="margin:0;padding:2px 20px;font-size:20px">핀포유 (PinForYou)</h1>
</td>
</tr>
<tr>
<td alidn="left" valign="top" style="padding:15px 20px">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:#000;font-family:'맑은 고딕', Malgun Gothic, '돋움', Dotum, arial, sans-serif;font-size:12px; background-color:#FFF;letter-spacing:-1px">
<tbody>
<tr>
<td align="left" valign="top" style="color:#E4574B">
<h2 style="margin:0;padding:0 0 15px;font-size:20px">회원가입 인증메일</h2>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding-bottom:10px;font-weight: bold;line-height:1.8">
온라인 상품권 쇼핑채널 '핀포유' 가입을 축하드립니다!<br><br>
<?=$_EMAIL_?> 회원님. 핀포유 가입을 진심으로 환영하며, 가입한 계정정보 확인 후 이메일 인증 버튼을 클릭하여 이메일 인증을 완료 하시기 바랍니다.
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:10px 5px;border-top:1px solid #000;border-bottom:1px solid #BABABA">
<p style="margin:0;padding: 0 0 10px;color:#1a19e4; font-weight: bold">가입 계정 정보</p>
핀포유 : http://<?= $const["_ROOT_DOMAIN_"]?>/<br>
아이디 : <?=$_EMAIL_?>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:15px 0">
<div style="width: 100%;border: 1px solid red;border-radius: 10px;padding:10px; background-color:#ffe8ba; line-height:2em">
<span style="color:red; font-size:14px"><b> - SNS지인사칭, 공무원사칭 피싱사기 주의 (필독) -</b></span><br><br>
1. <b style="color:red;text-decoration:underline">카카오톡/SNS메신저</b> 가족, 지인을 사칭한 피싱사기가 급증하고 있습니다. 누군가의 부탁으로 개인정보, 휴대폰 인증번호 노출 또는 결제부탁을 받으신 경우
메신저 대화를 중단 하시고 반드시 해당 <b style="color:red;text-decoration:underline">지인과 통화를 하여 사실관계</b> 확인바랍니다.<br><br>
2. <b style="color:red;">검찰 또는 수사관(공무원)</b> 사칭하는 사람에게 전화를 받고 회원 가입을 하거나, 구인광고를 통한 구매대행/고액알바 등의 아르바이트를 이유로 저희 “핀포유” 가입
<span style="color:red;text-decoration:underline">상품권 구매를 지시/요청 받았다면 99.9% 보이스피싱과 같은 금융 사고/사기</span> 가능성이 높습니다.<br><br>
이점 이용에 유의하여 주시기 바랍니다.
</div>
</td>
</tr>
<tr>
<td align="center" valign="top" style="padding:30px 0">
<a href="<?=$_LINK_?>" style="text-decoration:none;padding:10px 20px;border-radius:3px;color:#FFF;background-color:#E4574B;font-size:14px;font-weight:bold">이메일 인증</a>
</td>
</tr>
<tr>
<td align="left" valign="top" style="padding:15px 0">
이메일 인증후 사이트 이용이 가능합니다.
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top" style="padding:15px 20px">
<a href="http://<?= $const["_ROOT_DOMAIN_"]?>" target="_blank" style="color:#E4574B;font-weight:bold;font-size:14px;text-decoration:none">핀포유 바로가기</a>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,414 @@
@extends('web.layouts.auth')
@section('title', '비밀번호 찾기 | PIN FOR YOU')
@section('meta_description', 'PIN FOR YOU 비밀번호 찾기 페이지입니다.')
@section('canonical', url('/auth/find-password'))
@section('h1', '비밀번호 찾기')
@section('desc', '가입된 이메일과 인증을 통해 새 비밀번호를 설정합니다.')
@section('card_aria', '비밀번호 찾기 폼')
@section('show_cs_links', true)
@section('auth_content')
<div class="auth-steps" aria-label="진행 단계">
<div class="auth-step is-active" data-step-ind="1">1. 계정 확인</div>
<div class="auth-step" data-step-ind="2">2. 인증</div>
<div class="auth-step" data-step-ind="3">3. 재설정</div>
</div>
<form class="auth-form" id="findPwForm" onsubmit="return false;">
{{-- STEP 1 --}}
<div class="auth-panel is-active" data-step="1">
<div class="auth-field">
<label class="auth-label" for="fp_email">아이디(이메일)</label>
<input class="auth-input"
id="fp_email"
type="email"
placeholder="example@domain.com"
autocomplete="username"
value="{{ $email ?? '' }}">
<div class="auth-help">가입된 이메일을 입력하면 인증번호를 발송합니다.</div>
</div>
<div class="auth-actions">
<button class="auth-btn auth-btn--primary" type="button" data-next>인증번호 받기</button>
<a class="auth-btn auth-btn--ghost" href="{{ route('web.auth.login') }}">로그인으로 돌아가기</a>
</div>
</div>
{{-- STEP 2 --}}
<div class="auth-panel" data-step="2">
<div class="auth-field">
<label class="auth-label" for="fp_code">인증번호</label>
<input class="auth-input"
id="fp_code"
type="text"
placeholder="6자리 인증번호"
inputmode="numeric">
<div class="auth-help">인증번호 유효시간 내에 입력해 주세요.</div>
</div>
<div class="auth-actions">
<button class="auth-btn auth-btn--primary" type="button" data-next>확인</button>
<button class="auth-btn auth-btn--ghost" type="button" data-prev>이전</button>
</div>
</div>
{{-- STEP 3 --}}
<div class="auth-panel" data-step="3">
<div class="auth-field">
<label class="auth-label" for="fp_new"> 비밀번호 <small>영문/숫자/특수문자 권장</small></label>
<input class="auth-input"
id="fp_new"
type="password"
placeholder="새 비밀번호"
autocomplete="new-password">
</div>
<div class="auth-field">
<label class="auth-label" for="fp_new2"> 비밀번호 확인</label>
<input class="auth-input"
id="fp_new2"
type="password"
placeholder="새 비밀번호 재입력"
autocomplete="new-password">
</div>
<div class="auth-actions">
<button class="auth-btn auth-btn--primary" type="button" data-reset>비밀번호 변경</button>
<button class="auth-btn auth-btn--ghost" type="button" data-prev>이전</button>
</div>
<div class="auth-help" style="margin-top:10px;">
인증이 완료된 상태에서만 비밀번호 재설정이 가능합니다.
</div>
</div>
</form>
@endsection
@section('auth_bottom')
@endsection
@push('scripts')
<script>
(function(){
const root = document.getElementById('findPwForm');
if(!root) return;
const panels = root.querySelectorAll('.auth-panel');
const stepInd = document.querySelectorAll('.auth-step');
let step = Number(@json($initialStep ?? 1));
const $email = document.getElementById('fp_email');
const $code = document.getElementById('fp_code');
const $newPw = document.getElementById('fp_new');
const $newPw2= document.getElementById('fp_new2');
// 메시지 영역: 항상 활성 패널의 actions 위에 위치
const mkMsg = () => {
let el = root.querySelector('.auth-msg');
if(!el){
el = document.createElement('div');
el.className = 'auth-msg';
el.style.marginTop = '10px';
el.style.fontSize = '13px';
el.style.lineHeight = '1.4';
}
const activeActions = root.querySelector('.auth-panel.is-active .auth-actions');
if(activeActions && el.parentNode !== activeActions){
activeActions.prepend(el);
}
return el;
};
const setMsg = (text, type='info') => {
const el = mkMsg();
el.textContent = text || '';
el.style.color =
(type === 'error') ? '#ff6b6b' :
(type === 'success') ? '#2ecc71' :
'#c7c7c7';
};
const render = () => {
// 전환 전 포커스 제거
const activeEl = document.activeElement;
if (activeEl && root.contains(activeEl)) activeEl.blur();
panels.forEach(p => {
const on = Number(p.dataset.step) === step;
p.classList.toggle('is-active', on);
p.style.display = on ? 'block' : 'none';
if (!on) {
p.setAttribute('aria-hidden', 'true');
p.setAttribute('inert', '');
} else {
p.setAttribute('aria-hidden', 'false');
p.removeAttribute('inert');
}
});
stepInd.forEach(s => {
const on = Number(s.dataset.stepInd) === step;
s.classList.toggle('is-active', on);
});
mkMsg();
// 전환 후 포커스 이동
const target = root.querySelector(`.auth-panel[data-step="${step}"] input, .auth-panel[data-step="${step}"] button, .auth-panel[data-step="${step}"] a`);
target?.focus?.();
};
// -------- helpers ----------
const csrf = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content');
const postJson = async (url, data) => {
const res = await fetch(url, {
method: 'POST',
credentials: 'same-origin',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': csrf(),
'X-Requested-With': 'XMLHttpRequest',
'Accept': 'application/json',
},
body: JSON.stringify(data || {})
});
const ct = res.headers.get('content-type') || '';
const raw = await res.text();
let json = null;
if (ct.includes('application/json')) {
try { json = JSON.parse(raw); } catch(e){}
}
if (!res.ok) {
const msg = json?.message || `요청 실패 (${res.status})`;
const err = new Error(msg);
err.status = res.status;
err.payload = json;
err.raw = raw;
throw err;
}
return json ?? { ok: true };
};
// -------- timer ----------
let timerId = null;
let remain = 0;
const ensureTimerUI = () => {
let wrap = root.querySelector('.fp-timer');
if(!wrap){
wrap = document.createElement('div');
wrap.className = 'fp-timer';
wrap.style.marginTop = '8px';
wrap.style.display = 'flex';
wrap.style.gap = '10px';
wrap.style.alignItems = 'center';
const t = document.createElement('span');
t.className = 'fp-timer__text';
t.style.fontSize = '13px';
t.style.color = '#c7c7c7';
const btn = document.createElement('button');
btn.type = 'button';
btn.className = 'auth-btn auth-btn--ghost fp-resend';
btn.textContent = '재전송';
btn.style.padding = '10px 12px';
wrap.appendChild(t);
wrap.appendChild(btn);
const step2Field = root.querySelector('[data-step="2"] .auth-field');
step2Field?.appendChild(wrap);
}
return wrap;
};
const tick = () => {
const wrap = ensureTimerUI();
const t = wrap.querySelector('.fp-timer__text');
const btn = wrap.querySelector('.fp-resend');
const mm = String(Math.floor(remain/60)).padStart(2,'0');
const ss = String(remain%60).padStart(2,'0');
t.textContent = remain > 0 ? `유효시간 ${mm}:${ss}` : '인증번호가 만료되었습니다. 재전송 해주세요.';
btn.disabled = remain > 0;
if(remain <= 0){
clearInterval(timerId);
timerId = null;
return;
}
remain -= 1;
};
const startTimer = (sec) => {
remain = Number(sec || 180);
if(timerId) clearInterval(timerId);
timerId = setInterval(tick, 1000);
tick();
};
// -------- actions ----------
const sendCode = async () => {
const email = ($email?.value || '').trim();
if(!email){
setMsg('이메일을 입력해 주세요.', 'error');
return;
}
setMsg('확인 중입니다...', 'info');
try {
const json = await postJson(@json(route('web.auth.find_password.send_code')), { email });
setMsg(json.message || '인증번호를 발송했습니다.', 'success');
step = 2;
render();
startTimer(json.expires_in || 180);
if(json.dev_code){
setMsg(`(개발용) 인증번호: ${json.dev_code}`, 'info');
}
} catch (err) {
const p = err.payload || {};
if (err.status === 404 && p.code === 'EMAIL_NOT_FOUND') {
step = 1;
render();
setMsg(p.message || '해당 이메일로 가입된 계정을 찾을 수 없습니다.', 'error');
return;
}
setMsg(err.message || '오류가 발생했습니다.', 'error');
}
};
const verifyCode = async () => {
const code = ($code?.value || '').trim();
if(!/^\d{6}$/.test(code)){
setMsg('인증번호 6자리를 입력해 주세요.', 'error');
return;
}
setMsg('인증 확인 중입니다...', 'info');
try {
const json = await postJson(@json(route('web.auth.find_password.verify')), { code });
step = 3;
render();
setMsg(json.message || '인증이 완료되었습니다. 새 비밀번호를 설정해 주세요.', 'success');
} catch (err) {
setMsg(err.message || '오류가 발생했습니다.', 'error');
}
};
const resetPassword = async () => {
const pw1 = ($newPw?.value || '');
const pw2 = ($newPw2?.value || '');
if(!pw1 || pw1.length < 8){
setMsg('비밀번호는 8자 이상으로 입력해 주세요.', 'error');
return;
}
if(pw1 !== pw2){
setMsg('비밀번호 확인이 일치하지 않습니다.', 'error');
return;
}
setMsg('변경 처리 중입니다...', 'info');
try {
const json = await postJson(@json(route('web.auth.find_password.reset')), {
new_password: pw1,
new_password_confirmation: pw2
});
setMsg(json.message || '비밀번호가 변경되었습니다. 로그인해 주세요.', 'success');
if (json.redirect_url) {
setTimeout(() => { window.location.href = json.redirect_url; }, 800);
}
} catch (err) {
setMsg(err.message || '오류가 발생했습니다.', 'error');
}
};
// -------- events ----------
root.addEventListener('click', async (e) => {
const resend = e.target.closest('.fp-resend');
const next = e.target.closest('[data-next]');
const prev = e.target.closest('[data-prev]');
const reset = e.target.closest('[data-reset]');
try{
if(resend){
await sendCode();
return;
}
if(next){
if(step === 1) await sendCode();
else if(step === 2) await verifyCode();
return;
}
if(reset){
await resetPassword();
return;
}
if(prev){
step = Math.max(1, step - 1);
render();
return;
}
}catch(err){
const stepFromServer = err?.payload?.step;
if(stepFromServer){
step = Number(stepFromServer);
render();
}
setMsg(err.message || '오류가 발생했습니다.', 'error');
}
});
// Enter 키 UX
$email?.addEventListener('keydown', (e) => {
if(e.key === 'Enter'){
e.preventDefault();
root.querySelector('[data-step="1"] [data-next]')?.click();
}
});
$code?.addEventListener('keydown', (e) => {
if(e.key === 'Enter'){
e.preventDefault();
root.querySelector('[data-step="2"] [data-next]')?.click();
}
});
$newPw2?.addEventListener('keydown', (e) => {
if(e.key === 'Enter'){
e.preventDefault();
root.querySelector('[data-step="3"] [data-reset]')?.click();
}
});
render();
})();
</script>
@endpush