- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
98 lines
4.0 KiB
PHP
98 lines
4.0 KiB
PHP
<?php
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");
|
|
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
use PHPMailer\PHPMailer\Exception;
|
|
|
|
require $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php'; // 운영 서버에서의 경로
|
|
|
|
header('Content-Type: application/json');
|
|
$email = $_POST['email'] ?? '';
|
|
$vendorName = $_POST['vendorName'] ?? '';
|
|
$filename = $_POST['filename'] ?? '' ; // 전달받은 파일명
|
|
$item = $_POST['item'] ?? ''; // 거래명세표, 견적서, 총거래원장 등 선택
|
|
$issueDate = $_POST['formattedDate'] ?? ''; // [24.07.30]형태의 날짜
|
|
$sendCompany = '(주)경동기업';
|
|
|
|
function sendInvoiceEmail($to, $vendorName, $sendCompany, $issueDate, $item, $filename = null) {
|
|
$mail = new PHPMailer(true);
|
|
|
|
$setFrom_email = 'kd5130@naver.com'; // 보내는 회사이메일
|
|
$email = 'kd5130@naver.com'; // 보내는 회사이메일 표기되는 것
|
|
$password = 'kd9835130'; // 대한 메일 패스워드
|
|
$setFrom_company = '(주)경동기업'; // 보내는 회사
|
|
$phone = '031-983-5130';
|
|
|
|
try {
|
|
$mail->isSMTP();
|
|
$mail->Host = 'smtp.naver.com';
|
|
$mail->SMTPAuth = true;
|
|
$mail->Username = $setFrom_email;
|
|
$mail->Password = $password;
|
|
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
|
|
$mail->Port = 465;
|
|
|
|
$mail->CharSet = 'UTF-8';
|
|
|
|
$mail->setFrom($setFrom_email, $setFrom_company);
|
|
$mail->addAddress($to);
|
|
|
|
// 첨부파일 추가
|
|
if ($filename) {
|
|
$filePath = $_SERVER['DOCUMENT_ROOT'] . '/pdfs/' . basename($filename); // 파일 경로
|
|
if (file_exists($filePath)) {
|
|
$mail->addAttachment($filePath);
|
|
} else {
|
|
echo json_encode(['error' => "File does not exist: {$filePath}" ]);
|
|
return;
|
|
}
|
|
}
|
|
|
|
$mail->isHTML(true);
|
|
$mail->Subject = '[' . $sendCompany . '](으)로부터 [' . $item . '](이)가 도착했습니다. ' . $issueDate;
|
|
|
|
// HTML 내용 작성
|
|
$mail->Body = '
|
|
<html>
|
|
<body>
|
|
<p>수신 : ' . $vendorName . '</p> <br>
|
|
<p>' . $sendCompany . '(으)로부터 ' . $item . '(이)가 도착하였습니다.</p>
|
|
<br>
|
|
<table border="1" style="border-collapse: collapse; width: 100%;">
|
|
<tr>
|
|
<th style="padding: 8px; text-align: left;">보낸회사</th>
|
|
<td style="padding: 8px;">' . $sendCompany . '</td>
|
|
<th style="padding: 8px; text-align: left;">발행일자</th>
|
|
<td style="padding: 8px;">' . $issueDate . '</td>
|
|
</tr>
|
|
<tr>
|
|
<th style="padding: 8px; text-align: left;">Email</th>
|
|
<td style="padding: 8px;">' . $email . '</td>
|
|
<th style="padding: 8px; text-align: left;">연락처</th>
|
|
<td style="padding: 8px;">' . $phone . '</td>
|
|
</tr>
|
|
<tr>
|
|
<th style="padding: 8px; text-align: left;">메모</th>
|
|
<td style="padding: 8px;" colspan="3"></td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>';
|
|
|
|
$mail->AltBody = '수신 : ' . $vendorName . '\n' . $sendCompany . '(으)로부터 ' . $item . '(이)가 도착하였습니다.\n보낸회사: ' . $sendCompany . '\n발행일자: ' . $issueDate . '\nEmail: dhm2024@naver.com\n연락처: 010-3966-2024\n메모:';
|
|
|
|
// 읽음 확인 설정
|
|
$mail->addCustomHeader('Disposition-Notification-To', $setFrom_email);
|
|
$mail->addCustomHeader('Return-Receipt-To', $setFrom_email);
|
|
|
|
$mail->send();
|
|
echo json_encode(['success' => '메일이 전송되었습니다.']);
|
|
} catch (Exception $e) {
|
|
echo json_encode(['error' => "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"]);
|
|
}
|
|
}
|
|
|
|
sendInvoiceEmail($email, $vendorName, $sendCompany, $issueDate, $item, $filename);
|
|
|
|
?>
|