일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- qt 스타일시트
- 투명창
- 목공
- 투명윈도우
- 콘솔만들기
- 화면 녹화
- 구글 소셜로그인
- opencv.js
- Qt 캡쳐
- OpenCV
- 코스톰 윈도우
- 코너 라운드 윈도우
- mailer
- Qt 버그
- 관리자 메일발송
- aruco
- 윈도우 단축키
- 소셜로그인 연동해제
- KMS 인증
- 스크린 녹화
- QT
- opencv web
- Qt 관리자 권한
- 그누보드
- 오피스 KMS 인증
- High DPI 적용
- 셀프인테리어
- 투명 윈도우
- 영상처리
- High DPI
- Today
- Total
IT 알쓸신잡
그누보드 회원가입 시 관리자에게 메일 발송하기 본문
그누보드를 이용하여 사이트를 만들고 사용자가 회원가입을 했을 때,
자동으로 관리자 메일 주소로 메일이 가도록 하면 편하겠죠?
방법을 알아보도록 하겠습니다.
1. 설정 적용하기 |
https://도메인/adm 으로 들어가 관리자로 로그인을 한 후 환경설정>기본환경설정 에서,
관리자 메일 주소를 등록합니다.
그리고 환경설정 중간 쯤에, 최고관리자 메일발송이 있는데 "사용"에 체크하도록 합니다.
그리고 우측 상단에 "확인" 버튼을 클릭하면 설정이 저장됩니다.
2. 소스 변경 |
www/bbs/register_form_update.php 에 회원가입 시 최고관리자에게 메일 발송 소스입니다.
// 최고관리자님께 메일 발송
if ($config['cf_email_mb_super_admin']) {
$subject = run_replace('register_form_update_mail_admin_subject', '['.$config['cf_title'].'] '.$mb_nick .' 님께서 회원으로 가입하셨습니다.', $mb_id, $mb_nick);
ob_start();
include_once ('./register_form_update_mail2.php');
$content = ob_get_contents();
ob_end_clean();
$content = run_replace('register_form_update_mail_admin_content', $content, $mb_id);
mailer($mb_nick, $mb_email, $config['cf_admin_email'], $subject, $content, 1);
run_event('register_form_update_send_admin_mail', $mb_nick, $mb_email, $config['cf_admin_email'], $subject, $content);
}
$config['cf_email_mb_super_admin'] 이 부분이 환경설정에서 최고관리자 메일발송 "사용"을 했을 때 1이 DB에 저장됩니다.
여기서 mailer 함수가 실제 메일을 발송하는 함수이며,
www/lib/mailer.lib.php 파일에 원본 함수가 있습니다.
function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc="", $bcc="")
{
global $config;
global $g5;
// 메일발송 사용을 하지 않는다면
if (!$config['cf_email_use']) return;
if ($type != 1)
$content = nl2br($content);
$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']);
}
}
return $mail->send();
}
위 소스만 보면 회원가입 시 최고관리자에게 메일 발송이 설정만 되어 있다면 문제 없이 발송이 될 거 같습니다.
그런데 동작을 해보면 메일이 안가네요 ㅠㅠ
뭐가 문제일까요....
여기서 mailer 원본 함수는 수정이 필요없습니다. 다만 인자를 살펴보면,
$fmail 이 보내는 사람 => $mb_email
$to 가 받는 사람 => $config['cf_admin_email'] 으로 되어 있군요....
별도의 메일서버를 구축하지 않고 그누보드의 메일 발송을 그대로 사용하기 위해서는,
도메인과 동일한 메일 주소가 보내는 사람이여야 합니다.
그런데 원본 소스에는 가입자가 보내는 사람으로 되어 있어서 발송이 안된 것입니다~~
원인을 알았으니 어떻게 수정하는게 좋을까요?
mailer($mb_nick, $mb_email, $config['cf_admin_email'], $subject, $content, 1);
이 부분을
mailer($mb_nick, $config['cf_admin_email'], $config['cf_admin_email2'], $subject, $content, 1);
이렇게 수정하고, DB 에 cf_admin_email2 필드를 하나 추가하여 관리자가 받을 메일을 하나 추가합니다.
cf_admin_email 메일에서 cf_admin_email2 메일로 메일을 보내게 되는 것이죠^^
그누보드가 편리하게 사용할 수 있지만 사용할수록 수정할 사항이 많아 보입니다~
그래도 손쉽게 해결되어 다행입니다.
다음 포스트에서 뵙겠습니다~
'Development' 카테고리의 다른 글
그누보드에서 소셜 로그인 연동 해제 [구글] (0) | 2023.03.15 |
---|---|
그누보드에서 소셜 로그인 연동 해제 [네이버] (0) | 2023.03.10 |
그누보드에서 소셜 로그인 연동 해제 [카카오] (0) | 2023.03.08 |
Qt 에서 관리자 권한으로 실행되는 실행파일 만들기 (0) | 2023.03.08 |
Qt 에서 High DPI 적용 (0) | 2023.03.07 |