회사에서 난생처음 linux에서의 web 작업을 하는 도중에 php를 사용하면 더 편할 것 같은 예감이 들어서, php로 뚝딱뚝딱.
linux의 언어설정은 unicode로 되어있고, php의 언어설정은 되어있지 않아서, 한글이 깨지는 문제가 계속해서 발생해서 조금 고생한 듯. 기종간 최고의 문제는 역시 언어설정인것을 다시 한번 느끼게 되었다.
#메일 보내기
<?
function encode_2047($subject) {
return '=?euc-kr?b?'.base64_encode($subject).'?=';
}
function customer_sendmail($email_str, $userName, $subject, $message)
{
mb_internal_encoding('EUC-KR');
$from_name = $userName;
$from_name = encode_2047(iconv("UTF-8","EUC-KR",$from_name));
$subject = iconv("UTF-8","EUC-KR",$subject);
$message = iconv("UTF-8","EUC-KR",$message);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'X-Mailer: PHP' . "\r\n";
$headers .= "Content-Type: text/html; charset='ks_c_5601-1987'\r\n";
$headers .= 'From: '.$from_name.' < test@smtp.co.kr >'. "\r\n";
// 메일 보내기
$result = mb_send_mail($email_str, $subject, $message, $headers) ;
return $result;
}
// 멋진 코드. Post로 보내진 모든 데이터를 $Name 형태로 모두 만들어준다.
foreach($_POST as $key=>$value)
{
$$key=$value;
}
$to = "to@smpt.co.kr";
$subject = "[코로케이션] 시스템 무료 점검 신청_" . $companyName;
$body="
====================================
* 회사 이름 : $companyName
* 사용자 이름 : $userName
* 연락처 : $phoneNumber1-$phoneNumber2-$phoneNumber3
* 운영체제(os) 버젼 : $osVersion
* DB 버젼 : $dbVersion
* 서버 용도 : $useService
* 기타 점검 요청 사항 : $etc
=====================================
";
customer_sendmail($to, $userName, $subject,$body);
?>
#메일 & 첨부파일 보내기
<?php
function encode_2047($subject) {
return '=?euc-kr?b?'.base64_encode($subject).'?=';
}
foreach($_POST as $key=>$value)
{
$$key=$value;
}
if($_SERVER['REQUEST_METHOD']=="POST"){
mb_internal_encoding('EUC-KR');
$to = "to@smtp.co.kr";
$subject=encode_2047(iconv("UTF-8","EUC-KR","[코로케이션]시스템 무료 점검 사전정보_".$companyName));
$from = iconv("UTF-8","EUC-KR",$companyName);
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
// 파일 이름 얻어오기. 넘기는 페이지의 input="file"의 name 속성으로 넘엉
$tmp_name = $_FILES['filename']['tmp_name'];
$type = $_FILES['filename']['type'];
$name = $_FILES['filename']['name'];
$size = $_FILES['filename']['size'];
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'X-Mailer: PHP' . "\r\n";
$headers .= "Content-Type: text/html; charset='ks_c_5601-1987'\r\n";
$headers .= 'From: '.$from."<test@smtp.co.kr>\r\n";
$engineer = "아니오";
if($rdEngineer == "true") {
$engineer = "예";
}
$protect = "아니오";
if($rdProtect == "true") {
$protect = "예";
}
$duplication = "아니오";
if($rdDuplication == "true") {
$duplication = "예";
}
$backup = "아니오";
if($rdBackup == "true") {
$backup = "예";
}
$message = "";
if($rdEngineer == "true") {
$message = "
==================================== <br/>
* 회사 이름 : $companyName<br/>
* 서비스 유형 : $serviceType<br/>
* 구매 날짜 : $buyDate<br/>
* 전문 엔지니어 관리 : $engineer<br/>
* 보안 설정 : $protect<br/>
* 이중화 구성 : $duplication<br/>
* 백업 구성 : $backup<br/>
* 기타 문의 사항 : $etc<br/>
====================================
";
}
else {
$message = "
==================================== <br/>
* 회사 이름 : $companyName<br/>
* 서비스 유형 : $serviceType<br/>
* 구매 날짜 : $buyDate<br/>
* 전문 엔지니어 관리 : $engineer<br/>
- 서버 관리 : $noEngineer<br/>
* 보안 설정 : $protect<br/>
* 이중화 구성 : $duplication<br/>
* 백업 구성 : $backup<br/>
* 기타 문의 사항 : $etc<br/>
====================================
";
}
$message = iconv("UTF-8","EUC-KR",$message);
if (file_exists($tmp_name)){
if(is_uploaded_file($tmp_name)){
$file = fopen($tmp_name,'rb');
$data = fread($file,filesize($tmp_name));
fclose($file);
$data = chunk_split(base64_encode($data));
}
$headers = "From: $from\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: multipart/mixed;\r\n" .
" boundary=\"{$mime_boundary}\"";
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/html; charset='ks_c_5601-1987'\n\n" .
$message . "\n\n";
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$type};\n" .
" name=\"{$name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
}
mail($to, $subject, $message, $headers);
}
?>
php를 사용하건, ruby를 사용하건, 어떤 언어를 사용하더라도...
가장 중요한 것은 일단 해보자라는 용기?? ^^