메일서버에서 메일을 받은후 PHP 쉘모드(/usr/bin/php)를 통해 디비에 메일데이타를 저장한 후 웹메일에서 보여지게 됩니다.
그런데 php.ini 를 통해 특정 코드를 추가함으로 인해 이 과정에 문제가 발생한 것으로 추정됩니다.
웹메일 사용에는 별다른 문제가 없다면 아래 코드를 추가해서
해당 코드가 웹페이지에서만 실행되고 PHP 쉘모드에서는 실행되지 않도록 해주도록 한번 수정해보셔야 할 것 같습니다.
if ($_SERVER['DOCUMENT_ROOT'] || $_SERVER['SERVER_SOFTWARE']) // 쉘모드가 아닌 웹페이지에서 접근할때.
{
// 웹페이지에서 접근할 때 실행해야할 코드
}
이렇게 해도 안된다면.. php.ini 에서 추가해두신 코드를 삭제후 테스트해보는 방법밖에 없을것 같습니다.
--------------Original Message--------------
※ 필수입력정보 ※
▷ 제품버젼 : 2.4.0
▷ 오류발생 메뉴/주소 :
▷ 에러메세지 :
▷ 질문내용 :
지금껏 잘 사용해 오던 유저입니다.
세팅한 계정들 모두가 웹메일에서 메일보내는 것에는 아무 문제가 없습니다.
물론 아웃룩에서 보내는것도 아무 문제가 없구요.
그런데, 다른곳에서 메일을 발송했을때 아웃룩을 이용해서 메일을 가져오면 아무이상이 없는데 웹메일로는 메일을 가져오질 못합니다.
테스트를 해 보았는데 웹메일로 메일을 가져오지 못해서 아웃룩으로 받아보면 이상없이 들어옵니다.
왜 그런지를 모르겠네요.
지금껏 이상없이 잘 사용했는데 2틀전에 저희가 관리하는 사이트들의 게시판에 자동공격스팸글들이 많이 와서 php.ini 파일을 수정했습니다.
auto_prepend_file 부분을 파일명을 추가하고 그 파일에 아래와 같은 코드를 추가하였습니다.
if(!($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1' && $_SERVER['HTTP_USER_AGENT'] == 'Shockwave Flash')) {
if($_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.1' || !isset($_SERVER['HTTP_ACCEPT_ENCODING'])) {
if(count($_POST) != 0) {
$fp = fopen('/home/mysite/postdata.txt', 'a');
fwrite($fp, $_SERVER['REMOTE_ADDR']."\n");
fwrite($fp, print_r($_POST, true));
fwrite($fp, print_r($_GET, true));
fwrite($fp, print_r($_SERVER, true));
fwrite($fp, "---\n");
fclose($fp);
exit;
}
if(!preg_match('/BlackBerry|Daum|EMPAS\.ROBOT|Gigabot|Googlebot|NaverBot|Snapbot|Speedy\|SurveyBot|Twiceler|Yahoo|Yeti|MFeedBot|msnbot|webcollage|yoofind|xMind|BrightCrawler|NimbleCrawler|StackRambler|SurveyBot|ia_archiver/', $_SERVER['HTTP_USER_AGENT'])) {
$fp = fopen('/home/mysite/agents.txt', 'a');
fwrite($fp, $_SERVER['HTTP_USER_AGENT']."\n");
fclose($fp);
header('Content-Type: text/html; charset=utf-8');
echo '인터넷 옵션 에서 프록시 설정을 제거하셔야 접속하실 수 있습니다.';
exit;
}
}
}
?>
자동공격스팸글들을 차단하기 위해서는 어쩔수 없었구요.
이것으로 인해 웹메일에만 문제가 있을거 같지는 않는데요.
급합니다.
왜 이런걸까요?