SMTPDebug = 0; // 문제 해결 시 2로 변경하여 상세 로그 확인 $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; // 타임아웃 설정 추가 (PHP 7.3 호환) $mail->Timeout = 30; $mail->SMTPKeepAlive = true; $mail->CharSet = 'UTF-8'; $mail->setFrom($setFrom_email, $setFrom_company); $mail->addAddress($to); // 첨부파일 추가 if ($filename && !empty($filename)) { $filePath = $_SERVER['DOCUMENT_ROOT'] . '/pdfs/' . basename($filename); // 파일 경로 // 파일 존재 여부 및 권한 확인 if (!file_exists($filePath)) { throw new Exception("첨부파일을 찾을 수 없습니다: {$filePath}"); } if (!is_readable($filePath)) { throw new Exception("첨부파일을 읽을 수 없습니다: {$filePath}"); } $mail->addAttachment($filePath); } $mail->isHTML(true); $mail->Subject = '[' . $sendCompany . '](으)로부터 [' . $item . '](이)가 도착했습니다. ' . $issueDate; // HTML 내용 작성 $mail->Body = '

수신 : ' . htmlspecialchars($vendorName, ENT_QUOTES, 'UTF-8') . '


' . htmlspecialchars($sendCompany, ENT_QUOTES, 'UTF-8') . '(으)로부터 ' . htmlspecialchars($item, ENT_QUOTES, 'UTF-8') . '(이)가 도착하였습니다.


보낸회사 ' . htmlspecialchars($sendCompany, ENT_QUOTES, 'UTF-8') . ' 발행일자 ' . htmlspecialchars($issueDate, ENT_QUOTES, 'UTF-8') . '
Email ' . htmlspecialchars($email, ENT_QUOTES, 'UTF-8') . ' 연락처 ' . htmlspecialchars($phone, ENT_QUOTES, 'UTF-8') . '
메모
'; $mail->AltBody = '수신 : ' . $vendorName . '\n' . $sendCompany . '(으)로부터 ' . $item . '(이)가 도착하였습니다.\n보낸회사: ' . $sendCompany . '\n발행일자: ' . $issueDate . '\nEmail: kd5130@naver.com\n연락처: 031-983-5130 \n메모:'; // 읽음 확인 설정 $mail->addCustomHeader('Disposition-Notification-To', $setFrom_email); $mail->addCustomHeader('Return-Receipt-To', $setFrom_email); $mail->send(); echo json_encode(array('success' => true, 'message' => '메일이 전송되었습니다.')); } catch (Exception $e) { $errorMessage = "메일 전송 실패: " . $e->getMessage(); error_log($errorMessage); // 서버 로그에 기록 echo json_encode(array('success' => false, 'error' => $errorMessage)); } } sendInvoiceEmail($email, $vendorName, $sendCompany, $issueDate, $item, $filename); ?>