728x90
.업무중에 메일에 스타일 적용해서 보내고싶다는 이야기를 듣고 디자이너가 수정가능한 다른 html이나 php파일을두고 해당 파일에 스타일을 씌우면 직접 가져가서 메일을 발송하도록 해달라고해서 한참 만들다 적어놓으려한다.
주의할점은 딱히 없고 스타일을 주는경우에 인라인으로 스타일을 줘야한다. 더 이상 시간을 쓰고싶지 않으니 이정도로 만족하기로 했다... 몇시간을 했는지 후
1. sendmail.php
$charset = "UTF-8";
$to = '누구에게보낼까? 보낼사람메일 ';
$subject = "제목제목제목";
$fp = fopen('절대경로/formmail.php','r');
// fopen 해당파일을 불러온다. r로 입력해서 읽기전용으로 $fp라는 변수안에 집어넣음
$contents = fread($fp,10000);
// $fp는 그냥 사용할 수가 없다. fread로 파일의 글자를 읽어와줘야한다. 나는 제한을 그냥 만글자로 해놓았다.
$name = '홍길동'';
$request = '간편상담';
// 변경할 값이 필요하다면 이렇게 처리가 가능하다.
$contents = str_replace('{name}', $name, $contents);
$contents = str_replace('{request}', $request, $contents);
// 현재 불러온 값들이 $contents에 잇으니 해당 글을 치환해준다.
$headers = "Content-Type: text/html; charset=utf-8\r\n";
$headers .= "MIME-Version: 1.0\r\n";
// html을 전송하려면 반드시 애내를 넣어줘야함.
$headers .= "From: 보내는사람 메일\r\n";
mail($to, $subject, $contents, $headers);
fclose($fp);
2. formmail.php
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<title>Untitled Document</title>
<style type='text/css'>
</style>
</head>
<body>
<table>
<tr>
<td style='border: 1px solid #ff00ff;padding: 10px;'>이름</td>
<td style='border: 1px solid #00ff00;padding: 10px;'>{name}</td>
</tr>
<tr>
<td style='border: 1px solid'>요청사항</td>
<td style='border: 1px solid'>{request}</td>
</tr>
</table>
</body>
</html>
이렇게 보내게되면 메일에 name,request가 모두 변경이 된 후 적용된다.
보통 이게 안된다고하면 if(file_exists) 를 이용해서 해당파일의 존재여부부터 확인해야한다.
파일이 없으면 contents가 아에 안나오니 파일존재여부 확인 후 처리하도록하자
728x90
'개인 공부' 카테고리의 다른 글
[프로그래머스] 문자열 내림차순으로 배치하기 (0) | 2023.03.13 |
---|---|
[프로그래머스] 문자열 내 p와 y의 개수 (0) | 2023.03.13 |
[프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2023.03.09 |
[프로그래머스] 두 정수 사이의 합 (0) | 2023.03.09 |
[프로그래머스] 떨어지는 값 오름차순 정렬 (0) | 2023.03.08 |