게시판 작성자에게 메일 보내기

게시판 작성자에게 메일 보내기

QA

게시판 작성자에게 메일 보내기

답변 7

본문

게시판 뷰 페이지 안에 버튼을 추가해서 게시물 작성자에게 메일 보내기 창을 띄우려고 하는데,

<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자 미만이거나 숫자/알파벳 등이 아닌 다른 문자가 있거나 

그런 이유일 거 같네요.

function get_email_address($email)
{
    preg_match("/[0-9a-z._-]+@[a-z0-9._-]{4,}/i", $email, $matches);

    return $matches[0];
}

답변 주신 내용에서 도메인 {4} 부분을 {10}으로 바꿔도 동일하게 오류가 나는데 다른 방법 없을까요??

<?php echo get_string_encrypt($email_send); ?>

에서 get_string_encrypt 가 인코딩 해서 그런거네요. 이걸 빼야 합니다.

<?php echo $email_send; ?>

<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 $email_send; ?>" onclick="win_memo(this.href); return false;" target="_blank">

답변해주셨던  해당 코드로 변경했는데 동일하게 "이메일 주소가 올바르지 않습니다."라고 뜨는데, 다른 수정할 부분이 더 있는건가요??

넘기는 이메일 자체문제일 수도요. 주소가 어떻게 넘어가는지... 보셔야 할 듯 하네요 

주소를 확인해보셔야 할 듯요 

 

$email_send 값이 정상적으로 넘오는지를 확인해보시기 바랍니다.

그러시면.. 전송되고 있는 (에러나는) email 주소를 한번 올려주시는 게 좋겠네요 

이메일이 개인정보보호로 댓글에 업로드 되지가 않아서요
해당 관리자 이메일로 테스트 발송 하려고 합니다.
영어(특수기호x 숫자x) @ 네이버.com < 이렇게 되어있습니다.

맨 위 상단 expression에 "/[0-9a-z._-]+@[a-z0-9._-]{4,}/i" 코드 기입하고
text 보낼 메일 넣는게 맞나요?? 해당 방법이 맞다면 확인을 어떻게 하면 ㄷ expression에 "/[0-9a-z._-]+@[a-z0-9._-]{4,}/i" 코드 기입하고
text 보낼 메일 넣는게 맞나요??

위에 방법이 맞다면 설정 후 어떻게 확인하면 되는건가요??

네. 그렇다면 정규식도 통과된 건데...
function get_email_address($email)
{
    preg_match("/[0-9a-z._-]+@[a-z0-9._-]{4,}/i", $email, $matches);

    return $matches[0];
}
여기서 에러가 나온다는 게 의아하네요.
이 함수에서 올바른 이메일이 리턴된다면 이후 오류 메시지는 나오지 않았을텐데...

&email=이메일 값

 

소스보기에서 해당라인에 정상적으로 메일 주소가 오는지를 묻는거에요...

 

 

게시판 뷰 페이지에서 제작한 버튼을 클릭 후 에러 창 주소 끝에
&email=n2y8eqN9tpzQmX91mI6fz56tnqCVtZNh  이렇게 나오는데

관리자 페이지에서 메일 보내기 클릭 후 주소 끝에는
&email=o6XJpJSho6LC2ZiklJel0Q--  이렇게 나옵니다.

보내고자 하는 사람은 동일한데, 보내는 링크 주소 끝이 다르게 나와서 메일 출력을 제대로 못하고 있는 거 같습니다. 그래서 어디를 수정해야할지 도무지 감이 오지를 않는데
어디를 수정해야하면 해결할 수 있을까요??

formmail.php 페이지에 아래 소스 값에 정상으로 값이 넘어와 이메일로 전환되는지 확인이 필요합니다.

 

$email_enc = new str_encrypt();
$email_dec = $email_enc->decrypt($email);

$email = get_email_address($email_dec);

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