그누보드 비회원 글 등록 시 관리자 메일 미발송 해결 방법
페이지 정보

본문
그누보드 5.x 환경에서 비회원이 글을 작성했을 때 관리자 메일이 발송되지 않는 문제를 해결하기 위한 원인 파악과 두 가지 적용 방법을 안내합니다.
비회원 글 등록 시 관리자 메일 미발송 원인 및 해결 방법
그누보드 5.x 환경에서 비회원이 게시판에 글을 작성했을 때 관리자에게 메일이 발송되지 않는 주된 원인은 비회원 이메일 주소를 입력하지 않았을 경우 발생합니다. 회원은 가입할 때 입력한 개인정보의 메일 주소가 적용되지만, 비회원은 별도로 이메일 주소를 입력하지 않으면 메일이 발송되지 않습니다.
이를 해결하기 위한 스킨 수정 방식과 서버 사이드 로직 수정 방식 두 가지 방법이 있습니다. (단, 스킨 파일명은 테마에 따라 다를 수 있습니다.)
1. 게시판 스킨 수정 방식
메일 주소 입력란이 필요 없거나 선택 입력이어야 할 때, 스킨 파일에서 이메일 필드를 강제로 설정하거나 숨김 처리할 수 있습니다.
- 방법 A: 이메일 필드를 숨김 처리하여 관리자 메일 주소로 강제 지정게시판 스킨의
write.skin.php파일에 아래 내용을 추가합니다.
특정 이메일 주소로 직접 지정하려면 아래와 같이 입력할 수도 있습니다.<input type="hidden" name="wr_email" value="<?php echo $config['cf_admin_email']?>">
기존에 있던 이메일 입력 폼은 삭제합니다.<input type="hidden" name="wr_email" value="[email protected]"><?php if ($is_email) {?> <label for="wr_email" class="sound_only">이메일</label> <input type="text" name="wr_email" value="<?php echo $email?>" id="wr_email" class="frm_input email " placeholder="이메일"> <?php }?> - 방법 B: 여분 필드 이용메일 주소를 별도로 입력받아야 한다면 여분 필드를 이용해 입력받습니다.
2. 서버 사이드 로직 수정 방식
/bbs/write_update.php 파일을 수정하여 비회원이 이메일을 입력하지 않았을 때 관리자 메일로 대체되도록 설정합니다.
/bbs/write_update.php 파일에서 아래 코드를 찾습니다.
// 옵션에 메일받기가 체크되어 있고, 게시자의 메일이 있다면
if (strstr($wr['wr_option'], 'mail') && $wr['wr_email']) $array_email[] = $wr['wr_email'];
위 내용 바로 위에 아래 코드를 추가합니다.
if (!$wr_email) {
$wr_email = $config['cf_admin_email'];
}
참고 사항
- 두 가지 방법 중 한 가지 방법만 선택하여 사용하세요.
- 관리자 메일 주소
<?php echo $config['cf_admin_email']?>는 환경설정 > 기본환경설정 > 관리자 메일 주소에 입력한 값입니다.
게시판 스킨 수정 방식을 통한 비회원 이메일 누락 해결 방법
그누보드에서 비회원이 글을 작성할 때 이메일 주소를 입력하지 않아 관리자 메일 발송이 누락되는 경우, 게시판 스킨의 write.skin.php 파일을 수정하여 이메일 필드를 강제로 설정할 수 있습니다.
해결 절차
- 스킨 파일 확인: 사용 중인 게시판 스킨 폴더 내의
write.skin.php파일을 엽니다. (테마 사용 시 경로가 다를 수 있습니다.) - 이메일 필드 수정: 기존의 이메일 입력 폼(
<?php if ($is_email) {?>영역)을 삭제하거나 숨기고, 아래와 같이hidden타입의 입력 필드를 추가하여 관리자 메일 주소나 임의의 메일 주소가 자동으로 전달되도록 합니다.
- 관리자 메일 주소 사용 시:
<input type="hidden" name="wr_email" value="<?php echo $config['cf_admin_email']?>"> - 임의의 메일 주소 사용 시:
<input type="hidden" name="wr_email" value="[email protected]">
주의사항
- 위 방법은 비회원이 이메일을 입력하지 않아 발생하는 발송 누락 문제를 해결하기 위한 조치입니다.
- 스킨 파일명은 테마나 게시판 설정에 따라 다를 수 있으므로 적용 전 반드시 원본 파일을 백업하시기 바랍니다.
서버 사이드 로직 수정으로 비회원 이메일 누락 해결하기
그누보드 5.x 환경에서 비회원이 이메일을 입력하지 않고 글을 등록할 때 관리자 메일이 발송되지 않는 문제를 해결하려면 /bbs/write_update.php 파일을 수정합니다.
수정 방법
/bbs/write_update.php파일을 엽니다.- 파일 안에서 메일 발송 로직이 포함된 구간(보통
if (strstr($wr['wr_option'], 'mail') && $wr['wr_email'])코드 근처)을 찾습니다. - 해당 코드 바로 위에 다음 코드를 추가합니다.
if (!$wr_email) {
$wr_email = $config['cf_admin_email'];
}
참고 사항
- 본문에서 사용된 관리자 메일 주소
$config['cf_admin_email']값은 환경설정 > 기본환경설정 > 관리자 메일 주소에 입력한 값을 가져옵니다. - 스킨 수정 방식과 서버 사이드 로직 수정 방식 중 한 가지 방법만 사용해야 합니다.
- 수정 전 반드시 해당 파일을 백업하시기 바랍니다.
비회원 글 등록 시 관리자 메일 미발송 해결 방법
그누보드 5.x 환경에서 비회원이 글을 등록할 때 관리자 메일이 발송되지 않는 주된 원인은 비회원이 이메일 주소를 입력하지 않았거나 이메일 폼이 생략되어 발송 조건($wr_email)을 충족하지 못하기 때문입니다. 이를 해결하기 위해 게시판 스킨을 수정하거나 서버 사이드 로직을 수정하는 방식을 적용할 수 있습니다.
1. 게시판 스킨 수정 방식 (write.skin.php)
메일 주소 입력란이 필요 없거나 선택 입력으로 설정하여 비회원이 이메일을 적지 않아도 메일이 발송되도록 하려면 스킨 파일을 수정합니다. 테마에 따라 스킨 파일명이나 경로는 다를 수 있습니다.
- 이메일 필드 강제 설정 (히든값 추가):기존에 있던 이메일 입력 폼은 삭제하고, 아래와 같이 관리자 메일 주소를 히든 필드로 강제 지정합니다.
관리자 메일 주소 대신 직접 지정한 이메일을 넣을 수도 있습니다.<input type="hidden" name="wr_email" value="<?php echo $config['cf_admin_email']?>"><input type="hidden" name="wr_email" value="[email protected]"> - 이메일 별도 입력:메일 주소를 직접 입력받아야 한다면 여분 필드를 활용할 수 있습니다.
2. 서버 사이드 로직 수정 방식 (/bbs/write_update.php)
/bbs/write_update.php 파일에서 이메일 값이 없을 때 관리자 메일로 대체되도록 로직을 수정합니다.
- 코드 수정 위치 확인:
/bbs/write_update.php파일에서 아래 코드를 찾습니다.// 옵션에 메일받기가 체크되어 있고, 게시자의 메일이 있다면 if (strstr($wr['wr_option'], 'mail') && $wr['wr_email']) $array_email[] = $wr['wr_email']; - 대체 코드 추가:위 내용 바로 위에 아래 코드를 추가합니다.
if (!$wr_email) { $wr_email = $config['cf_admin_email']; }
3. 참고 사항 및 추가 점검
- 둘 중 한 가지 방법만 선택하여 적용합니다.
- 코드 수정 후에도 메일이 발송되지 않는다면 기본환경설정에서 메일발송 사용 체크 여부와 서버의 메일 발송 기능(SMTP 또는 sendmail) 구동 상태를 점검해야 합니다.
비회원 글 등록 메일 누락 해결 판단 가이드
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 비회원 글 등록 시 관리자 메일이 누락됨 | 이메일 입력 폼 존재 여부 확인 | 폼이 없다면 스킨 수정 또는 서버 로직 수정 중 하나 선택 |
| 코드 수정 전 메일 발송 기능 자체가 의심됨 | 관리자 페이지 테스트 메일 발송 | 테스트 메일 미발송 시 서버 SMTP/sendmail 설정 점검 |
| 코드 수정 후에도 메일이 오지 않음 | 게시판 설정 및 메일 발송 옵션 확인 | 게시판 관리 내 '메일발송 사용' 체크 여부 재확인 |
실전 FAQ
Q. 스킨 수정과 서버 로직 수정 중 무엇이 더 나은가요?
- 스킨 수정은 특정 게시판에만 적용할 때 유용하며, 서버 로직 수정은 사이트 전체 게시판에 일괄 적용할 때 효율적입니다. 두 방식을 혼용하면 중복 처리로 오류가 발생할 수 있으니 한 가지만 선택하세요.
Q. 수정 후에도 메일이 안 오는데, 다른 원인이 있을까요?
- 서버 환경(sendmail/SMTP) 문제일 가능성이 큽니다. 관리자 페이지의 '메일 테스트' 기능을 통해 서버에서 메일 발송 자체가 가능한지 먼저 확인하세요. 테스트 메일조차 발송되지 않는다면 호스팅사에 메일 서버 구동 여부를 문의해야 합니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드4 서버 이전 후 갤러리 이미지 처리 PHP 메모리 부족 오류 해결 방법 26.10.01
- 다음글그누보드 4 미니돌/아바타 스킨 2.6 설치 및 주요 버그 패치 가이드 26.10.01
댓글목록
등록된 댓글이 없습니다.