아주 간단하게 메일을 보낼 수 있지만
예쁘게 꾸민 html 코드로 메일을 보낼 수도 있다.
1. mailtest.php
$to = '받는사람@gmail.com';
$subject = 'html을 보냈습니다.';
$fp = fopen('mailtest.html',"r");
$message = fread($fp,filesize('mailtest.html'));
$name = '김광인';
$age = '21';
$gender = '남자';
$message = str_replace('{name}', $name, $message);
$message = str_replace('{age}', $age, $message);
$message = str_replace('{gender}', $gender, $message);
echo $message;
// html 메일을 보낼 때 꼭 이헤더가 붙어야한다.
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=utf-8';
// Additional headers
$headers[] = 'To: Kim<받는사람@gmail.com>';
$headers[] = 'From: Admin<test@naver.com>';
$headers[] = 'Cc: Kim1<참조인1@naver.com>,Kim2<참조인2@gmail.com>';
$headers[] = 'Bcc: 숨은참조인3@gmail.com';
$result =mail($to, $subject, $message, implode("\r\n", $headers));
echo "메일 성공여부 : ";
if($result){echo "성공";}else{echo "실패";}
2_1. mailtest.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
table tr td{
border: 1px solid #5da399;
text-align: center;
padding: 10px;
}
</style>
</head>
<body>
<table>
<tr>
<td>이름</td>
<td>{name}</td>
</tr>
<tr>
<td>나이</td>
<td>{age}</td>
</tr>
<tr>
<td>성별</td>
<td>{gender}</td>
</tr>
</table>
</body>
</html>
이렇게 하면, mailtest.html은
다음과 같이 출력된다.
메일을 보낸 후
메일함을 확인해보면
다음과 같이 스타일이 적용이 하나도 안된 상태로 온다.
따라서 html의 스타일을 inline방식으로 바꾼다.
2_2. mailtest.html
<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 style="border-collapse: collapse;text-align: center;">
<tr>
<td style="border: 1px solid #5da399;padding: 10px;">이름</td>
<td style="border: 1px solid #5da399;padding: 10px;">{name}</td>
</tr>
<tr>
<td style="border: 1px solid #5da399;padding: 10px;">나이</td>
<td style="border: 1px solid #5da399;padding: 10px;">{age}</td>
</tr>
<tr>
<td style="border: 1px solid #5da399;padding: 10px;">성별</td>
<td style="border: 1px solid #5da399;padding: 10px;">{gender}</td>
</tr>
</table>
</body>
</html>
스타일이 잘 적용된 상태로 메일이 보내진다.
다 끝난 것 같지만 아직 문제가 하나 남았다.
잘 살펴보자
분명 받는 사람은 나 하나고 참조인이 2명인데, 왜 받는사람이 두명인 것인가?
이는 mailtest.php에서 $to 와 $headers[] = 'To: Kim<받는사람@gmail.com>';
때문인다. to를 두번 지정해준 것이므로 "$headers[] = 'To: Kim<받는사람@gmail.com>';"을 지워줘야 한다.
그럼 다음과 같이 받는 사람이 한명으로 제대로 나온다.
'프로그래밍 > PHP' 카테고리의 다른 글
카카오톡 챗봇 (2) 스킬서버 없이 카카오톡 챗봇 만들기-오픈빌더 (0) | 2019.12.26 |
---|---|
카카오톡 챗봇 (1) 간략 개념 (0) | 2019.12.26 |
PHP로 메일 보내기 1 (0) | 2019.11.22 |
구글 reCAPTCHA v2 api 사용하기 (0) | 2019.11.10 |
PHP 만으로 간단한 CAPTCHA 이미지를 만들어보자 (0) | 2019.11.10 |
WRITTEN BY
,