<?php
// Версия 2.7
// Номера кошельков. Надеюсь понятно для чего =)
// R167963845445
// Z225757696726
//
// Gemorroj
// http://wapinet.ru
error_reporting(0);
$title = 'Отправка E-mail'; // Заголовок
$charset = 'utf-8'; // Кодировка сообщений.
$priority = 3; // Приоритет сообщений
$serv = 1; // Если не хочешь использовать отправлялку меилов как сервис, закомментируй эту строку.
$wap = 0; // Версия отправлялки. 1 - wml, 2 - xhtml, автоопределение - 0
$send_file = 1; // Разрешить отправку вложений
$upload_size = 512; // Максимальный разрешенный размер файла в кб
$url = $_GET['url'];
if($serv)
{
if(!$url)
{$url = $_SERVER['HTTP_HOST'];}
else
{$url = strip_tags(check($url));}
}
else
{$url = $_SERVER['HTTP_HOST'];}
$htm_top = '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<title>'.$title.'</title>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<div class="w">'.$url.'<br/>
</div>
<div class="w2">
'.$title.'<br/>
</div>';
$htm_foot = '<div class="w"><a href="http://'.$url.'">'.$url.'</a></div></body></html>';
$wml_top = '<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml_1.3.xml">
<wml><card id="index" title="'.$title.'"><p>';
$wml_foot = '</p><p align="center"><a href="http://'.$url.'">'.$url.'</a></p></card></wml>';
if($send_file)
{
$wml_file = 'Файл:<br/>
<input name="file" value="http://" type="text"/><br/>';
$wml_post = '<postfield name="file" value="$(file)"/>';
$enctype = 'enctype="multipart/form-data"';
$htm_file = 'Файл:<br/><input name="file" type="file"/><br/>';
$htm_file.= 'Файл:<br/>
<input name="file" type="text" value="http://"/><br/>';
}
if($_POST['wap'])
{$wap = $_POST['wap'];}
$wap = head($wap);
$test = 16;
if($_POST['go'] != $test)
{
if($wap != 2)
{
print $wml_top.'
Кому:
<br/><input name="to" maxlength="32" value="@" type="text"/><br/>
Тема:
<br/><input name="theme" maxlength="50" value="" type="text"/><br/>
Ваш E-mail:
<br/><input name="from" maxlength="50" value="@" type="text"/><br/>
Cообщение:
<br/><input name="mes" maxlength="1024" value="" type="text"/><br/>
<select name="trans" multiple="true">
<option value="1">Транслит</option></select>
<br/>
'.$wml_file.'
<anchor>Отправить
<go href="'.$_SERVER['PHP_SELF'].'?url='.$url.'" method="post">
<postfield name="to" value="$(to)"/>
<postfield name="theme" value="$(theme)"/>
<postfield name="from" value="$(from)"/>
<postfield name="mes" value="$(mes)"/>
<postfield name="trans" value="$(trans)"/>
'.$wml_post.'
<postfield name="wap" value="'.$wap.'"/>
<postfield name="go" value="'.$test.'"/>
</go></anchor>
<br/>';
if($serv)
{
print '---<br/><a href="#serv">Сервис</a>
</p><p align="center"><a href="http://'.$url.'">'.$url.'</a></p></card>
<card id="serv" title="'.$title.'"><p align="center">
Поставте у себя на сайте такую ссылку:<br/>
<u>http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?url=адрес_вашего_сайта_без_http://</u>';
}
print $wml_foot;
}
else
{
print $htm_top;
if(!$_GET['s'])
{
print '<div class="input">
<form action="'.$_SERVER['PHP_SELF'].'?url='.$url.'" '.$enctype.' method="post">
<div>
Кому:<br/>
<input name="to" maxlength="32" value="@" type="text"/><br/>
Тема:<br/>
<input name="theme" maxlength="50" value="" type="text"/><br/>
Ваш E-mail:<br/>
<input name="from" maxlength="50" value="@" type="text"/><br/>
Cообщение:<br/>
<textarea name="mes" maxlength="1024"></textarea><br/>
Транслит
<input type="checkbox" name="trans" value="1"/><br/>
'.$htm_file.'
<input type="hidden" name="wap" value="'.$wap.'"/>
<input type="hidden" name="go" value="'.$test.'"/>
<input type="submit" value="Отправить"/>
</div>
</form>
</div>';
if($serv)
{
print '<div class="border">
<a href="'.$_SERVER['PHP_SELF'].'?s=1">Этот cервис вам на сайт</a><br/>
</div>';
}
}
else
{
print '<div class="foot">
Просто поставте у себя на сайте такую ссылку:<br/>
<div style="text-decoration:underline; font-weight:bold">http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?url=адрес вашего сайта без http://<br/>
</div>
</div>';
}
print $htm_foot;
}
}
else
{
$to = check($_POST['to']);
$theme = check($_POST['theme']);
$from = check($_POST['from']);
$mes = check($_POST['mes']);
$trans = $_POST['trans'];
$file = $_FILES['file']['tmp_name'];
$name = check($_FILES['file']['name']);
$size = $_FILES['file']['size'];
if(!$file)
{
$file = check($_POST['file']);
if($file && $file!='http://')
{
$name = basename($file);
$size = filesize($file);
$post = 1;
}
}
if($wap != 2)
{
print $wml_top;
$foot = $wml_foot;
}
else
{
print $htm_top;
$foot = $htm_foot;
}
if(!$mes)
{$error.= 'Вы не написали сообщение!<br/>';}
else
{
if($trans == 1)
{$mes = trans($mes);}
}
if(!$theme)
{$theme = 'Hello';}
if(!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,6}$/i", $to))
{$error.= 'Вы ввели не верный E-mail в поле "Кому"!<br/>';}
if(!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,6}$/i", $from))
{$error.= 'Вы ввели не верный E-mail в поле "Ваш E-mail"!<br/>';}
if(!$error)
{
if(strtolower($charset) != 'utf-8' && function_exists('iconv'))
{
$mes = iconv('utf-8', $charset, $mes);
$theme = iconv('utf-8', $charset, $theme);
//$name = iconv('utf-8', $charset, $name);
}
print send($to,$from,$theme,$mes,$priority,$charset,$url,$file,$name,$size,$upload_size,$foot);
}
else
{print $error;}
print $foot;
}
function check($str)
{return str_replace(chr(0),null,trim($str));}
function head($wap)
{
if(!$wap)
{
if(substr_count($_SERVER['HTTP_USER_AGENT'], 'MSIE'))
{
$wap = 2;
header('Content-type: text/html; charset=utf-8');
}
elseif(substr_count($_SERVER['HTTP_USER_AGENT'], 'Mozilla') || substr_count($_SERVER['HTTP_ACCEPT'], 'html'))
{
$wap = 2;
header('Content-type: application/xhtml+xml; charset=utf-8');
}
else
{
$wap = 1;
header('Content-type: text/vnd.wap.wml;charset=utf-8');
}
}
else
{
if($wap == 1)
{header('Content-type: text/vnd.wap.wml;charset=utf-8');}
else
{
$wap = 2;
if(substr_count($_SERVER['HTTP_ACCEPT'], 'xhtml'))
{header('Content-type: application/xhtml+xml; charset=utf-8');}
else
{header('Content-type: text/html; charset=utf-8');}
}
}
header('Cache-Control: no-cache');
return $wap;
}
function trans($str)
{
return str_replace(
array('Sch','SCH','sch','s.ch','S.ch','S.Ch','S.CH','ye','yu','ya','jo','je','ju','ja','ch','sh','zh','yo','YO','ZH','Ch','Sh','Ye','Yu','Ya','Yo','Zh','CH','SH','YE','YU','YA','Jo','JO','Je','JE','Ju','JU','Ja','JA','j.a','j.o','j.e','j.u','y.a','y.o','y.e','y.u','s.h','c.h','J.a','J.A','J.o','J.O','J.e','J.E','J.u','J.U','Y.a','Y.A','Y.o','Y.O','Y.e','Y.E','Y.u','Y.U','S.h','S.H','C.h','C.H','A','B','V','G','D','E','Z','I','J','K','L','M','N','O','P','R','S','T','U','F','X','C','Y','H','a','b','v','g','d','e','z','i','j','k','l','m','n','o','p','r','s','t','u','f','x','c','y','h',"'"),
array('Щ','Щ','щ','сч','Сч','СЧ','СЧ','э','ю','я','ё','э','ю','я','ч','ш','ж','ё','Ё','Ж','Ч','Ш','Э','Ю','Я','Ё','Ж','Ч','Ш','Э','Ю','Я','Ё','Ё','Э','Э','Ю','Ю','Я','Я','йа','йо','йе','йу','йа','ыо','ые','ыу','сх','цх','Йа','ЙА','Йо','ЙО','Йе','ЙЕ','Йу','ЙУ','Ыа','ЫА','Ыо','ЫО','Ые','ЫЕ','Ыу','ЫУ','Сх','СХ','Цх','ЦХ','А','Б','В','Г','Д','Е','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ы','Х','а','б','в','г','д','е','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ы','х','ь'),
$str);
}
function send($to,$from,$theme,$mes,$priority,$charset,$url,$file,$name,$size,$upload_size,$foot)
{
global $post;
if(!$file || $file=='http://')
{
if(mail($to, '=?utf-8?B?'.base64_encode($theme).'?=', $mes, "From: $from\r\nContent-type: text/plain; charset=$charset;\r\nX-Mailer: $url;\r\nX-Priority: ".$priority))
{return 'Ваше сообщение успешно отправлено!<br/>';}
else
{return 'Сообщение не отправлено!<br/>';}
}
if($size > 1024*$upload_size)
{return 'Размер файла превышает '.$upload_size.' kb'.$foot;}
ignore_user_abort(1);
$bound = 'Wapmobile.co.cc';
$header = 'From: '.$from."\n";
//$header.= 'To: '.$to."\n";
//$header.= 'Subject: =?utf-8?B?'.base64_encode($theme).'?='."\n";
$header.= "Mime-Version: 1.0\n";
$header.= 'Content-Type: multipart/mixed; boundary="'.$bound.'"';
$body = "\n\n--".$bound."\n";
$body.= 'Content-type: text/plain; charset='.$charset."\n";
$body.= 'Content-Transfer-Encoding: 8bit'."\n\n";
$body.= $mes;
if($post)
{$code = base64_encode(file_get_contents($file));}
else
{
$fl = fopen($file,'rb');
$code = base64_encode(fread($fl,filesize($file)));
fclose($f);
}
$body.= "\n\n--".$bound."\n";
$body.= 'Content-Transfer-Encoding: base64'."\n";
$body.= 'Content-Type: '.mime($name).'; name="'.$name.'"'."\n";
$body.= 'Content-Disposition: attachment'."\n\n";
$body.= $code."\n";
$body.= '--'.$bound."--\n\n";
if(mail($to, '=?utf-8?B?'.base64_encode($theme).'?=', $body, $header))
{return 'Письмо успешно отправлено!<br/>';}
else
{return 'Сообщение не отправлено!<br/>';}
}
function mime($name)
{
$info = pathinfo($name);
switch(strtolower($info['extension']))
{
default:
$mime = 'application/octet-stream';
break;
case 'jar':
$mime = 'application/java-archive';
break;
case 'jad':
$mime = 'text/vnd.sun.j2me.app-descriptor';
break;
case 'cab':
$mime = 'application/vnd.ms-cab-compressed';
break;
case 'sis':
$mime = 'application/vnd.symbian.install';
break;
case 'zip':
$mime = 'application/x-zip';
break;
case 'rar':
$mime = 'application/x-rar-compressed';
break;
case '7z':
$mime = 'application/x-7z-compressed';
break;
case 'gz':
case 'tgz':
$mime = 'application/x-gzip';
break;
case 'bz':
case 'bz2':
$mime = 'application/x-bzip';
break;
case 'jpg':
case 'jpe':
case 'jpeg':
$mime = 'image/jpeg';
break;
case 'gif':
$mime = 'image/gif';
break;
case 'png':
$mime = 'image/png';
break;
case 'txt':
case 'dat':
case 'php':
case 'php5':
case 'htm':
case 'html':
case 'wml':
case 'css':
$mime = 'text/plain';
break;
case 'mmf':
$mime = 'application/x-smaf';
break;
case 'mid':
$mime = 'audio/mid';
break;
case 'mp3':
$mime = 'audio/mpeg';
break;
case 'amr':
$mime = 'audio/amr';
break;
case 'wav':
$mime = 'audio/x-wav';
break;
case 'mp4':
$mime = 'video/mp4';
break;
case 'wmv':
$mime = 'video/x-ms-wmv';
break;
case '3gp':
$mime = 'video/3gpp';
break;
case 'avi':
$mime = 'video/x-msvideo';
break;
case 'mpg':
case 'mpe':
case 'mpeg':
$mime = 'video/mpeg';
break;
case 'pdf':
$mime = 'application/pdf';
break;
}
return $mime;
}
?>