메일 전송이 간단한줄 알았는데 생각보다 어려워서 3시간정도 삽질을 했습니다
폼메일 기능은 상담신청 & 문의사항 전송등의 웹페이지 기능을 만들때 사용됩니다
결론은 '별도의 서버 설정 없이 폼에서 메일을 바로 날려보내면 안되나 ?!' 네 안되나 봅니다 ...
제가 찾아보고 지인에게 물어본 바로 메일을 보내기 위해서는
1. 운영측에 메일서버가 필요 (돈이 들어감)
2. SMTP 의 이용
으로 나누어 지고 주로 2번의 경우를 많이 사용한다 합니다
그누보드는 기본적으로 mailer 라는 메일을 보낼 수 있는 함수를 내장하고 있습니다
단 이를 고치지 않고 사용하려면 1번의 메일서버가 필요한거로 보여 검색끝에 mailer 함수를 약간 수정하였습니다
/lib/mailer.lib.php
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
32
33
34
35
36
37
38
39
40
41
|
<?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();
if (defined('G5_SMTP') && G5_SMTP) {
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = G5_SMTP;
$mail->Port = 465;
$mail->Username = "userID"; // SMTP 를 이용할 이메일 주소의 계정부분
$mail->Password = "userPW"; // 계정의 페스워드
}
$mail->CharSet = 'UTF-8';
$mail->From = $fmail; // 발신자 이메일주소
$mail->FromName = $fname; // 발신자 이름
$mail->Subject = $subject; // 제목
$mail->AltBody = "";
$mail->msgHTML($content); // 내용
$mail->addAddress($to); // 받는사람 이메일주소
if ($cc)
$mail->addCC($cc);
if ($bcc)
$mail->addBCC($bcc);
if ($file != "") {
foreach ($file as $f) {
$mail->addAttachment($f['path'], $f['name']);
}
}
return $mail->send();
}
?>
|
원래의 코드에 SMTP 관련 내용을 추가해줍니다
후에 다른쪽에서 mailer() 로 사용하면 됩니다
출처 : ...
'Web Programming > GNUBOARD 5' 카테고리의 다른 글
SHOP.HEAD 적용시키기 (0) | 2019.05.21 |
---|