본문 바로가기
IT-개발,DB

[php/html] 게시물 메일보내기 - 간단한 소스(레이어사용)

by SB리치퍼슨 2016. 7. 21.

[php/html] 게시물 메일보내기 - 간단한 소스(레이어사용)


2004.11.25


제로보드에서도 사용할 수 있는 게시물 메일 보내기 입니다.
레이어를 이용해서 간단히 보낼 수 있습니다..

View.php 에서 메일보내기

커뮤너티나 큰 웹사이트 다니다 보면.. "현재 보고있는 글을 이메일로 보내기"란
기능이 많이 있더라구요.. 저도 꼭 이걸 구현해보고 싶어서 만들어봤습니다.

현재 제 홈페이지에서 사용중이구요.
제 홈페이지 아무게시판이나 클릭해서 글 내용보면 밑부분에 이메일로 보내기 기능이있습니다.

뭐 그리 어렵지는 않습니다.
우선 view.php파일에 약간만 수정해주면 됩니다.
원리는 레이어와 메일보내기 함수를 이용한것입니다.

우선 view.php파일의 가장 윗부분에 레이어에 해당하는 자바스크립트를 넣어줘야 합니다.

================================================================================
<script language="JavaScript">
<!--
function na_hide_layer(lname)
{
  if (document.layers)
    document.layers[lname].visibility = 'hide'
  if(document.all)
    document.all(lname).style.visibility = 'hidden'
}

function na_show_layer(lname)
{
if (lname == '') return;

var layer  = document.all ? document.all(lname).style : document.layers[lname];
var show  = document.all ? 'visible' : 'show';
var hide  = document.all ? 'hidden' : 'hide';

if (na_show_layer.arguments.length <= 1)
  layer.visibility = show;
else
  layer.visibility = (na_show_layer.arguments[1] == 0 ? show : hide);
}

// -->
</script>
==================================================================================

그리고 글쓴사람.. 날짜.. 내용등등.. 이렇게 쭉 따라내려오겠죠.
그리고 마지막 부분에.. "현재글 이메일로 보내기" 라는 메뉴를 하나 만듭니다.

<a href="#" OnClick="na_show_layer('layer2');">현재글을 이메일로 보내기</a>

그리고 밑에 레이어에 해당하는 부분을 작성해주면 됩니다.
레이어 속에는 메일함수가 들어가야 하겠죠.


<div id="layer2" style="width:250px; height:10px; position:absolute; left:400px; top:460px; z-index:1; visibility:hidden;">
<!-- 메일 보내기 폼 부분 -->
<table border="0" cellpadding=0 cellspacing=0 width="100%">
<tr>
<td align=left bgcolor=#3366cc>
<font color=white>이메일로 보내기</font>
</td>
<td align=right bgcolor=#3366cc>
<a href="#none" OnClick="na_hide_layer('layer2');">
<img src=<?=$dir?>/btn_search_cancel.gif border=0 alt='취소 버튼'></a>
</td>
</tr>
<tr>
<td bgcolor=white height=10></td>
<td bgcolor=white height=10></td>
</tr>
<tr>
<td bgcolor=white align=center>
<form method='post'>
<input type="hidden" name="mode" value="up">
<font size=2 face=tahoma color=black><b>e-mail : </b></font><input type="text" name="tomail" maxlength="30">
<input type="submit" value="보내기"  class=input>
</form>
</td>
<td bgcolor=white>
</td>
</tr>
</table>
</div>
<!-- 폼 끝 -->
<?
     if ($mode = up) {
         $mh = "From: MRJH <mail@mrjh.net>\r\n";
             $mh .= "Content-Type: text/html; charset=euc-kr\r\n";
             $title="Mr. JH에서 전송한 내용입니다.";
             $body="<table border=0 width=70%>
                          <tr>
                           <td width=100% align=left>
                           <font size=2 face=tahoma><b> $subject </b></font>
                           <hr size=1 color=#990000 width=100%>
                           </td>
                          </tr>
                           <td width=100%>
                            $memo
                           </td>
                          </tr>
                          <tr>
                           <td width=100% align=right>
                            <hr size=1 color=#990000 width=100%>
                            <font size=4 face=tahoma color=#990000><b>Mr. JH</b></font>
                           </td>
                          </tr>
                         </table>";

      mail($tomail , $title , $body, $mh);

     }
?>


전체적인 구조는 이러합니다. 메일함수만 잘 이용하면 되겠죠.
메일 함수에서.. 제로보드에서 입력한 제목과 내용을 그대로 받아와서 보내기면 하면되죠.
근데 HTML이 되게 해야지.. 그냥 내용만 보내면.. 
<br> 이란 태그가 자꾸 붙어서 나옵니다.

전체 소스를 보실분은 http://mrjh.net/etc/source/view_source.php 여길 클릭하면
제가 제 view.php 파일의 전체소스를 올려뒀습니다.


반응형

댓글