폼메일 수신자 제목 이상

폼메일 수신자 제목 이상

QA

폼메일 수신자 제목 이상

답변 3

본문

폼메일을 사용하는데 제목이 이상하게 뜹니다..

왜 그럴까요..?
1025970347_1718241047.4438.png

 


<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require __DIR__ . '/lib/PHPMailer/src/PHPMailer.php';
require __DIR__ . '/lib/PHPMailer/src/Exception.php';
require __DIR__ . '/lib/PHPMailer/src/SMTP.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
include_once('./_common.php');
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
if (!chk_captcha()) {
    alert('자동등록방지 숫자가 틀렸습니다.');
}
if (isset($_POST['email'])) {
    $email_to = "*** 개인정보보호를 위한 이메일주소 노출방지 ***"; // 수신메일
    $email_subject = "[나무 속 자연공작소] {$_POST['first_name']} 님의 문의사항. {$_POST['mainlTitle']}";
    $email_subject = '=?UTF-8?B?' . base64_encode($email_subject) . '?=';
    if (!isset($_POST['first_name']) ||
        !isset($_POST['phone']) ||
        !isset($_POST['email']) ||
        !isset($_POST['mainlTitle']) ||
        !isset($_POST['comments']) ||
        !isset($_POST['agree'])) {
        die('Sorry.\nThere is a problem with the form you submitted.\nPlease check the form again.');
    }
    $first_name = $_POST['first_name']; // required
    $phone = $_POST['phone']; // not required
    $email = $_POST['email']; // required
    $comments = $_POST['comments']; // required
    $mainlTitle = $_POST['mainlTitle']; // required
    $group = isset($_POST['group']) ? implode(', ', $_POST['group']) : ''; // 다중체크
    $agree = $_POST['agree']; // required
    function clean_string($string) {
        $bad = array("content-type", "bcc:", "to:", "cc:", "href");
        return str_replace($bad, "", $string);
    }
    $email_message = "성명 : " . clean_string($first_name) . "<br><br>";
    $email_message .= "연락처 : " . clean_string($phone) . "<br><br>";
    $email_message .= "E-mail : " . clean_string($email) . "<br><br>";
    $email_message .= "제목 : " . clean_string($mainlTitle) . "<br><br>";
    $email_message .= "분야 : " . clean_string($group) . "<br><br>"; // 다중체크
    $email_message .= "문의 내용 : " . clean_string($comments) . "<br><br>";
    $email_message .= "개인정보처리방침 : " . clean_string($agree) . "<br><br>";
    // PHPMailer setup
    $mail = new PHPMailer(true);
    try {
        // Server settings
        $mail->isSMTP();
        $mail->Host = 'smtp.gmail.com';
        $mail->SMTPAuth = true;
        $mail->Username = '*** 개인정보보호를 위한 이메일주소 노출방지 ***'; // Your Gmail address
        $mail->Password = 'orqscwfrxfrxoenf'; // Your Gmail password or App Password
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
        $mail->Port = 587;
        // Recipients
        $mail->setFrom('*** 개인정보보호를 위한 이메일주소 노출방지 ***', '한국세라프');
        $mail->addAddress($email_to);
        // Content
        $mail->isHTML(true);
        $mail->Subject = $email_subject;
        $mail->Body = $email_message;
        $mail->send();
        // Use header for redirect after PHP execution
        header("Location: /home/sub04_04.php");
        exit();
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }
}
?>
 

이 질문에 댓글 쓰기 :

답변 3

저 오류는 인코딩 오류로 보여집니다.


$mail->setFrom('*** 개인정보보호를 위한 이메일주소 노출방지 ***', '한국세라프');


이 부분에 발송시 이름이 깨지는 부분이 있다보니 이 부분을 iconv 함수로 인코딩을 변경해서 적용해 보셔야 한다는 부분입니다.

제가 전에 이랬던 기억이 있는데 혹시 파일 열었을때 euc-kr로 저장하셨는지 확인한번 해보셔요
이전에 인코딩 맞추고 나서 해결됬던 기억이 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 209
© SIRSOFT
현재 페이지 제일 처음으로