그누보드 메일 보내는 사람 주소, 본문에 html이 보이는 문제
본문
// lib/mailer.lib.php 에서 사용
//define('G5_SMTP', '127.0.0.1');
define('G5_SMTP', '');
fastcomet 호스팅을 쓰고 있고, 워드프레스 쓸 땐 다른 설정 없어도 메일이 잘 갔습니다.
그누보드에서 127.0.0.1을 지우니까 메일이 오긴 오는데,
1. 보내는 사람 주소가 관리자 이메일이 아니라 "~~@...fcomet.com"으로 나옵니다.
보내는 사람 주소를 관리자 이메일 주소로 보이게 하려면 어떻게 해야 하나요?
2. 받은 메일 아래에 html 문서가 중복되어 나타납니다. 본문만 나타나게 하려면 어떻게 해야 하나요?
This is a multi-part message in MIME format.
--b1_04ca83ebdf94dbdd91f59993cfbe9bf3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[메일검사] 내용이 내용이 제대로 보인다면 보내는 메일 서버에는 이상이 없는것입니다.2024-12-24 21:13:20이 메일 주소로는 회신되지 않습니다.
--b1_04ca83ebdf94dbdd91f59993cfbe9bf3
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
<span style="font-size:9pt;">[메일검사] 내용<p>이 내용이 제대로 보인다면 보내는 메일 서버에는 이상이 없는것입니다.<p>2024-12-24 21:13:20<p>이 메일 주소로는 회신되지 않습니다.</span>
--b1_04ca83ebdf94dbdd91f59993cfbe9bf3--
try {
$mail = new PHPMailer(); // defaults to using php "mail()"
if (defined('G5_SMTP') && G5_SMTP) {
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = G5_SMTP; // SMTP server
if(defined('G5_SMTP_PORT') && G5_SMTP_PORT)
$mail->Port = G5_SMTP_PORT;
}
$mail->CharSet = 'UTF-8';
$mail->From = $fmail;
$mail->FromName = $fname;
$mail->Subject = $subject;
$mail->AltBody = ""; // optional, comment out and test
$mail->msgHTML($content);
$mail->addAddress($to);
if ($cc)
$mail->addCC($cc);
if ($bcc)
$mail->addBCC($bcc);
//print_r2($file); exit;
if ($file != "") {
foreach ($file as $f) {
$mail->addAttachment($f['path'], $f['name']);
}
}
$mail = run_replace('mail_options', $mail, $fname, $fmail, $to, $subject, $content, $type, $file, $cc, $bcc);
$mail_send_result = $mail->send();
} catch (Exception $e) {
}
!-->!-->
답변 2
게시판쪽 문제인가요?
Fastcomet 호스팅 서버는 보안 정책에 따라
메일 발송자의 이메일 주소(From)를 호스팅 계정 도메인 기반 주소로 강제할 것입니다.
Fastcomet에서 제공하는 SMTP 인증을 통해 발신자 이메일을 원하는 값으로 설정하거나,
Gmail, 네이버, 카카오와 같은 외부 SMTP 서버를 사용하여 Fastcomet의 제한을 우회하고
발신자 이메일 주소(관리자@이메일)를 자유롭게 설정할 수 있을 것같습니다.
※ 특정 '외부 SMTP 서버'를 사용하는 보내는 메일(관리자@이메일)의 경우~
1. 보내는 메일(관리자@이메일)만 지정하는 것이라면
lib/mailer.lib.php의 """ $mail->From = $fmail; """ 이 코드를
""" $mail->From = G5_ADMIN_EMAIL; """로 수정.
★ config.php, """ 관리자@이메일 """ 변수(G5_ADMIN_EMAIL)를 한 줄 추가 ~
// lib/mailer.lib.php 에서 사용
//define('G5_SMTP', '127.0.0.1');// config.php
define('G5_SMTP', '');
define('G5_ADMIN_EMAIL', '관리자@이메일'); // 발신자 이메일 설정
try {
$mail = new PHPMailer(); // defaults to using php "mail()"
if (defined('G5_SMTP') && G5_SMTP) {
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = G5_SMTP; // SMTP server
if(defined('G5_SMTP_PORT') && G5_SMTP_PORT)
$mail->Port = G5_SMTP_PORT;
}
$mail->CharSet = 'UTF-8';
$mail->From = G5_ADMIN_EMAIL; // config.php의 값을 사용 ########
$mail->FromName = $fname;
$mail->Subject = $subject;
$mail->AltBody = ""; // optional, comment out and test
$mail->msgHTML($content);
$mail->addAddress($to);
if ($cc)
$mail->addCC($cc);
if ($bcc)
$mail->addBCC($bcc);
//print_r2($file); exit;
if ($file != "") {
foreach ($file as $f) {
$mail->addAttachment($f['path'], $f['name']);
}
}
$mail = run_replace('mail_options', $mail, $fname, $fmail, $to, $subject, $content, $type, $file, $cc, $bcc);
$mail_send_result = $mail->send();
} catch (Exception $e) {
}
2. 받은 메일에 HTML 문서가 중복되어 나타나는 문제는
MIME 멀티파트 메시지 형식 때문입니다.
이 문제는 이메일이 text/plain와 text/html 두 가지 포맷으로 보내질 때 발생합니다.
이메일 클라이언트가 둘 중 하나를 선택해서 표시해야 하지만,
특정 클라이언트는 이를 제대로 처리하지 못해 두 포맷을 모두 표시할 수 있습니다.
★ 수정에 참고할 예시 ( lib/mailer.lib.php)
try {
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = G5_SMTP ?: 'smtp.gmail.com'; // 외부 SMTP 서버 (예: Gmail)
$mail->SMTPAuth = true;
$mail->Username = '사용자@지메일'; // SMTP 사용자명
$mail->Password = 'your-app-password'; // SMTP 비밀번호
$mail->Port = 587;
$mail->CharSet = 'UTF-8';
$mail->setFrom(G5_ADMIN_EMAIL, '사이트 관리자'); // 발신자 설정
$mail->addAddress($to); // 수신자 설정
$mail->Subject = $subject; // 메일 제목
$mail->msgHTML($content); // HTML 본문 설정
$mail->AltBody = ""; // 일반 텍스트 비활성화
if (!$mail->send()) {
echo '메일 발송 실패: ' . $mail->ErrorInfo;
} else {
echo '메일 발송 성공!';
}
} catch (Exception $e) {
echo '예외 발생: ' . $e->getMessage();
}
!-->!-->!-->