게시판 작성자에게 메일 보내기 채택완료
게시판 뷰 페이지 안에 버튼을 추가해서 게시물 작성자에게 메일 보내기 창을 띄우려고 하는데,
<a href="<?php echo G5_BBS_URL ?>/formmail.php?mb_id=<?php echo $view['mb_id']; ?>&name=<?php echo urlencode($view['wr_name']);?>&email=<?php echo get_string_encrypt($email_send); ?>" onclick="win_memo(this.href); return false;" target="_blank">
버튼
</a>
위에 코드로 기입을 하면 "이메일 주소가 올바르지 않습니다."라고 경고창만 뜨는데 해결방법 좀 알 수 있을까요??
답변 7개
제가 그누보드 소스를 확인해보니... 제가 말했던 거 잘못되었네요.
$email_dec = $email_enc->decrypt($email);
formmail.php 내에서 이렇게 디크립트를 해주고 있네요
위에 get_string_encrypt 를 빼지 마세요. ( 작성자님이 추가하신 줄 알고... ;;; 죄송합니다.)
좀 더 확인해보니,
아래 함수에서 정규표현식 체크를 하는데, 이 형식에 안맞는 이메일이어서 에러 같아요.
\lib\common.lib.php
function get_email_address($email)
{
preg_match("/[0-9a-z._-]+@[a-z0-9._-]{4,}/i", $email, $matches);
return $matches[0];
}
표현식상으로는.. 아마 이메일 중에 도메인이 4자 미만이거나 숫자/알파벳 등이 아닌 다른 문자가 있거나
그런 이유일 거 같네요.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
formmail.php 페이지에 아래 소스 값에 정상으로 값이 넘어와 이메일로 전환되는지 확인이 필요합니다.
$email_enc = new str_encrypt();
$email_dec = $email_enc->decrypt($email);
$email = get_email_address($email_dec);
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
&email=n2y8eqN9tpzQmX91mI6fz56tnqCVtZNh 이렇게 나오는데
관리자 페이지에서 메일 보내기 클릭 후 주소 끝에는
&email=o6XJpJSho6LC2ZiklJel0Q-- 이렇게 나옵니다.
보내고자 하는 사람은 동일한데, 보내는 링크 주소 끝이 다르게 나와서 메일 출력을 제대로 못하고 있는 거 같습니다. 그래서 어디를 수정해야할지 도무지 감이 오지를 않는데
어디를 수정해야하면 해결할 수 있을까요??
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 7개
해당 관리자 이메일로 테스트 발송 하려고 합니다.
영어(특수기호x 숫자x) @ 네이버.com < 이렇게 되어있습니다.
https://regexr.com/
여기에서 정규식 [0-9a-z._-]+@[a-z0-9._-]{4,} 넣으시고,
아래에 Text 칸에 해당 이메일 넣고 테스트 해보세요.
text 보낼 메일 넣는게 맞나요?? 해당 방법이 맞다면 확인을 어떻게 하면 ㄷ expression에 "/[0-9a-z._-]+@[a-z0-9._-]{4,}/i" 코드 기입하고
text 보낼 메일 넣는게 맞나요??
위에 방법이 맞다면 설정 후 어떻게 확인하면 되는건가요??
[0-9a-z._-]+@[a-z0-9._-]{4,} 만 넣으세요.
그리고 text 칸에 메일 넣는게 맞구요.
제대로 되면 메일만 하이라잇 (형광펜 효과) 됩니다.
function get_email_address($email)
{
preg_match("/[0-9a-z._-]+@[a-z0-9._-]{4,}/i", $email, $matches);
return $matches[0];
}
여기서 에러가 나온다는 게 의아하네요.
이 함수에서 올바른 이메일이 리턴된다면 이후 오류 메시지는 나오지 않았을텐데...
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
<?php echo get_string_encrypt($email_send); ?>
에서 get_string_encrypt 가 인코딩 해서 그런거네요. 이걸 빼야 합니다.
<?php echo $email_send; ?>
답변에 대한 댓글 1개
답변해주셨던 해당 코드로 변경했는데 동일하게 "이메일 주소가 올바르지 않습니다."라고 뜨는데, 다른 수정할 부분이 더 있는건가요??
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
{
preg_match("/[0-9a-z._-]+@[a-z0-9._-]{4,}/i", $email, $matches);
return $matches[0];
}
답변 주신 내용에서 도메인 {4} 부분을 {10}으로 바꿔도 동일하게 오류가 나는데 다른 방법 없을까요??