The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Как отправить письмо с аттачем на PHP (php base64 mail)"
Отправлено gomez.ru, 11-Авг-06 14:53 
Тоже самое, но с проверкой e-mail-ов:

<?
//Функция проверки переменной
function html_filter($str) {
    $result = HTMLSpecialChars($str);
    return $result;}

//Функция проверки e-mail
function isEmail($email){
    if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]+$", $email)){return TRUE;}else{return FALSE;}}

//Функция отправки письма с аттачем
function XMail($from, $to, $subj, $text, $filename, $file)
{
$text = str_replace("\n", "<br>\n", $text);
$f         = fopen($file,"rb");
$un        = strtoupper(uniqid(time()));
$head      = "From: $from\n";
$head     .= "To: $to\n";
$head     .= "Subject: $subj\n";
$head     .= "X-Mailer: PHPMail Tool\n";
$head     .= "Reply-To: $from\n";
$head     .= "Mime-Version: 1.0\n";
$head     .= "Content-Type:multipart/mixed;";
$head     .= "boundary=\"----------".$un."\"\n\n";
$zag       = "------------".$un."\nContent-Type:text/html;\n";
$zag      .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag      .= "------------".$un."\n";
$zag      .= "Content-Type: application/octet-stream;";
$zag      .= "name=\"".basename($filename)."\"\n";
$zag      .= "Content-Transfer-Encoding:base64\n";
$zag      .= "Content-Disposition:attachment;";
$zag      .= "filename=\"".basename($filename)."\"\n\n";
$zag      .= chunk_split(base64_encode(fread($f,filesize($file))))."\n";
if (!@mail("$to", "$subj", $zag, $head))
    return 0;
else
    return 1;
}

//Функция отправки письма без аттача
function EMail($from, $to, $subj, $text)
{
$text = str_replace("\n", "<br>\n", $text);
$un        = strtoupper(uniqid(time()));
$head      = "From: $from\n";
$head     .= "To: $to\n";
$head     .= "Subject: $subj\n";
$head     .= "X-Mailer: PHPMail Tool\n";
$head     .= "Reply-To: $from\n";
$head     .= "Mime-Version: 1.0\n";
$head     .= "Content-Type:multipart/mixed;";
$head     .= "boundary=\"----------".$un."\"\n\n";
$zag       = "------------".$un."\nContent-Type:text/html;\n";
$zag      .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag      .= "------------".$un."\n";
if (!@mail("$to", "$subj", $zag, $head))
    return 0;
else
    return 1;
}

//Получаем данные из формы
if(isset($submit)):
    //Проверяем полученные из формы данные
    $from = trim(html_filter($from));
    $to = trim(html_filter($to));
    $subj = trim(html_filter($subj));
    $text = trim(html_filter($text));
    $filename = trim(html_filter($file_name));
    //Проверяем e-mail-ы
    if(isEmail($from)==false){$from_error=1;}
    if(isEmail($to)==false){$to_error=1;}
    if($from_error!=1 and $to_error!=1):
        //Если прикреплен файл
        if($filename!="" and $file_size>0):
            if(XMail($from, $to, $subj, $text, $filename, $file)==1){header("Location:?send=ok");}
        endif;
        //Если Не прикреплен файл
        if($filename=="" or $file_size==0):
            if(EMail($from, $to, $subj, $text)==1){header("Location:?send=ok");}
        endif;
    endif;
endif;
?>

<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Отправка письма с аттачем и без</title>
</head>

<body>
<?//Печатаем ошибки
if(isset($submit)):
    if($from_error==1):?>
    <font color="red">E-mail в поле From введен неправильно!</font><br>
    <?endif;?>
    <?if($to_error==1):?>
    <font color="red">E-mail в поле To введен неправильно!</font><br>
    <?endif;?>    
<?endif;?>    

<?if($send=="ok"):?><font color="green">Сообщение отправлено</font><br><br><?endif;?>

<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
From:<br> <input type="text" name="from" value="<?=$from?>"><br>
To:<br> <input type="text" name="to" value="<?=$to?>"><br>
Subject:<br> <input type="text" name="subj" value="<?=$subj?>"><br>
Text:<br><textarea cols="40" rows="10" name="text"><?=$text?></textarea><br>
File:<br> <input type="file" name="file"><br>
<input type="submit" name="submit" value="Отправить">
</form>

</body>
</html>

</body>
</html>

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру