Vítejte na BLASSENweb

BLASSENweb - the future of your web !

Jste anonymní uživatel. Můžete se zdarma zaregistrovat zde

Objevte dynamické www stránky v profesionální kvalitě.
http://blassenweb.net v4.0
BLASSENweb na Facebooku
Snadná změna vzhledu Intuitivní ovládání v češtině Mnoho doplňkových rozšíření Jednoduchá instalace Pro všechny zdarma

RYCHLÉ ODKAZY

Také hledáte rychlý, bezpečný a spolehlivý systém, který vám umožní bezstarostnou správu webu ? United-Nuke je řešení právě pro vás - stáhněte si jeho aktuální verzi a objevte stovky funkcí, které nabízí.

Nová verze:
UNITED-NUKE 4.2.08ms2 - new version
Uživatelská příručka:
UNITED-NUKE User Guide CZ v2007.1
Čeština:
Czech Language Pack for UNITED-NUKE 4.2.08ms2

NEVÍTE SI RADY...
Nevíte si rady s koupí domény ? S výběrem webhostingu ? Rádi vám poradíme. log in!

Možnosti pro Vás

Sdílet na FB
Přidat sidebar Přidat na Google Přidat na Seznam Přidat na Bloglines WAP verze RSS 0.91 RSS 0.92 RSS 2.0 Atom 0.3 Top Články Bookmark using any bookmark manager!
Mapa Stránek

Odkazy

Zajímavé odkazy
INTERNET.ER.CZ

Doporučujeme vám:

Reklama

Sponzor

Sponsored by Websupport.sk webhosting

PHP & MySQL

Odeslání mailu s přílohou

Publikováno: 09.04, 2008
Publikoval: Blassen    Téma: PHP & MySQL počet slov: 1356

Už dlouho jsem do této kategorie nanapsal žádný článek, tak by se hodilo, to nějak napravit.
Protože se pořád někdo ptá jak odeslat email s přílohou, tak jsem se rozhodl zveřejnit script který je vyzkoušený a funguje.

Asi by bylo slušné poznamenat, že tento script jsem nevymyslel, pouze upravil a trochu zjednodušil.Otevřte oba soubory textovým editorem (např. poznámkový blok). Zadejte svůj vlastní email v řádku 14 souboru mailer.php. Další změny pravděpodobně nebudou zapotřebí.

1. Změna velikosti přílohy - nutno provést v obou souborech index.html i mailer.php.
mailer.php v řádku 12
index.html v řádcích 28 a 40


2. Skript má jistá omezení, aby se zabránilo zasílání virů.

2.1 Je povoleno pouze zasílání některých typů souborů.
V souboru mailer.php můžete přidat nebo odstranit MIME type v řádcích 52-64. Jestli řádky nechcete natrvalo vymazat, můžete je zrušit vykomentováním 2 lomítky na začátku řádku. Zasláním nepovoleného typu souboru se zobrazí jeho MIME type, který můžete přidat do seznamu povolených v mailer.php.

2.2 Je povoleno pouze zasílání některých extenzí (přípon v názvu souboru).
V souboru mailer.php můžete přidat nebo odstranit extenze v řádcích 79-90. Jestli řádky nechcete natrvalo vymazat, můžete je zrušit vykomentováním 2 lomítky na začátku řádku.

2.3 Název souboru smí obsahovat pouze 1 tečku, protože viry často mají matoucí jména s několika tečkami a extenzemi.

2.4 Extenze musí být 3 nebo 4 znaky dlouhá.

3. Formulář v index.html můžete upravit přidáním dalších vstupních polí, kontroly dat JavaScriptem a libovolných stylů.


Obsah souboru index.html by mohl vypadat třeba takto:
{ Kód }:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<
html>
<
head>
<
title>Odeslání přílohy</title>
<
meta http-equiv=Content-Type content="text/html; charset=windows-1250">
</
head>
<
body style="background-color:white; color:black">


<
form enctype="multipart/form-data" method="post" action="mailer.php">
<
table style="background-color:gainsboro; color:black; font:normal 11px Arial" border="0">

<
tr>
<
td align="center" colspan="2">
<
b>Odeslání přílohy</b></td>
</
tr>

<
tr><td >Jméno:</td><td><input name="Jmeno" type="text" style="width:150px;"></td></tr>
<
tr><td >Email:</td><td><input name="Odesilatel" type="text" style="width:150px;"></td></tr>

<
tr><td>Text:</td><td><textarea name="Text" cols="20" rows="2" style="width:150px;"></textarea></td></tr>

<
tr>
<
td align="center" colspan="2">

<!-- ---------------------------------------------------- -->
<!-- ---------------------------------------------------- -->
<
p style="text-align:justify">Max.velikost přílohy 50000 bajtů.</p>
<!-- ---------------------------------------------------- -->
<!-- ---------------------------------------------------- -->

</
td>
</
tr>

<
tr>
<
td align="left" colspan="2">

<!-- ---------------------------------------------------- -->
<!-- 
MAXIMÁLNÍ VELIKOST PŘÍLOHYUPRAVTE TÉŽ V mailer.php -->
<
input type="hidden" name="MAX_FILE_SIZE" value="50000">
<!-- ---------------------------------------------------- -->
<!-- ---------------------------------------------------- -->

<
input name="fileatt" type="file" size="10">
</
td>
</
tr>

<
tr>
<
td align="center" colspan="2"><input name="submitter" type="button" onclick="alert('Tato ukázka úmyslně není funkční')" xtype="submit" value="Odeslat"></td>
</
tr>

</
table>
</
form>

</
body>
</
html>


obsah souboru mailer.php (větší změny nejsou zapotřebí)

{ Kód }:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<
html>
<
head>
<
title>Odeslání přílohy</title>
<
meta http-equiv=Content-Type content="text/html; charset=windows-1250">
<
meta http-equiv="Content-Language" content="cs">
</
head>
<
body style="background-color:white; color:black">
<?
php

///////////////////// MAXIMÁLNÍ VELIKOST PŘÍLOHY. UPRAVTE TÉŽ V index.html 
$max_att  50000;
/////////////////////// ZADEJTE SVŮJ EMAIL ZDE ///////////////////
$to 'vasEmail@vasServer.cz';
//////////////////////////////////////////////////////////////////

$charset 'windows-1250';
if(!isset(
$_POST['submitter'])) exit('<h1>Error 1</h1>');
$subject   'Priloha z webu';
$from      $_POST['Odesilatel'];

$message .= 'Odesláno ze stránky: ' $_SERVER['HTTP_REFERER'] . "\r\n";
while (list(
$name$value) = each($_POST)) {
    if (
$name == 'MAX_FILE_SIZE' || $name == 'charset' || $name == 'submitter') {
    }
    elseif (
gettype($value) == 'array') { // TAG SELECT MULTIPLE
        
$cnt count($value);
        for (
$i=0$i $cnt$i++) {
            
$message .= "$name: $value[$i]r\\n";
        }
    }
    else { 
// OSTATNÍ ELEMENTY
        
$message .= "$name: $value\r\n";
    }
}
$valid    1;
$file_size $_FILES['fileatt']['size'];
$file_name $_FILES['fileatt']['name'];
$file_type $_FILES['fileatt']['type'];
if (
$file_size 0$att_present true;
$message .= "VELIKOST PŘÍLOHY: $file_size bytes\r\n\n";
if(
$att_present) {

    if(
$file_size $max_att) {
        
$valid 0;
        
$err_msg .= "<p>Příloha je větší nežli povolených $max_att bajtů";
    }

    if (
        
$file_type != 'text/plain'         // TXT
    
&& $file_type != 'text/html'          // HTM
    
&& $file_type != 'text/html'          // HTML
    
&& $file_type != 'image/gif'          // GIF
    
&& $file_type != 'image/jpeg'         // JPG JPEG
    
&& $file_type != 'image/pjpeg'        // JPG JPEG
    
&& $file_type != 'image/png'          // PNG
    
&& $file_type != 'image/x-icon'       // ICO
    
&& $file_type != 'application/msword' // DOC
    
&& $file_type != 'application/excel'  // XLS
    
&& $file_type != 'application/rtf'    // RTF
    
&& $file_type != 'application/octet-stream' // DOC
    
&& $file_type != 'application/x-zip-compressed' // ZIP
    
&& $file_type != 'application/pdf'
    
) { // PDF
        
$valid 0;
        
$err_msg .= "<p>Skript nepodporuje tento typ souboru $file_type";
    }

    
$dots substr_count($file_name,'.');
    if(
$dots != 1) {
        
$valid 0;
        
$err_msg .= "<p>Příloha má nepovolený počet extenzí $dots";
    }

    
$extension strtolower(strstr($file_name,'.'));
    if (
    
$extension != ".txt"
    
&&  $extension != ".htm"
    
&&  $extension != ".html"
    
&&  $extension != ".gif"
    
&&  $extension != ".jpg"
    
&&  $extension != ".jpeg"
    
&&  $extension != ".png"
    
&&  $extension != ".ico"
    
&&  $extension != ".doc"
    
&&  $extension != ".xls"
    
&&  $extension != ".rtf"
    
&&  $extension != ".zip"
    
&&  $extension != ".pdf"
    
) {
        
$valid 0;
        
$err_msg .= "<p>Skript nepodporuje extenzi $extension";
    }
    
    
$p strlen($extension);
    if(
$p != && $p != 5) {
        
$valid 0;
        
$err_msg .= "<p>Příloha má neplatnou délku extenze $p";
    }
    
    if(
$valid == 1){
        
$fileatt $_FILES['fileatt']['tmp_name'];
        
$headers "From: $from";
        if(
is_uploaded_file($fileatt)) {
          
$file fopen($fileatt,'rb');
          
$data fread($file,filesize($fileatt));
          
fclose($file);
          
$semi_rand md5(time());
          
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x";
          
$headers .= "\nMIME-Version: 1.0\n" .
                      
"Content-Type: multipart/mixed;\n" .
                      
" boundary=\"{$mime_boundary}\"";
          
$message "This is a multi-part message in MIME format.\n\n" .
                     
"--{$mime_boundary}\n" .
                     
"Content-Type: text/plain; charset=$chrset\n" .
                     
"Content-Transfer-Encoding: 7bit\n\n" .
                     
$message "\n\n";
          
$data chunk_split(base64_encode($data));
          
$message .= "--{$mime_boundary}\n" .
                      
"Content-Type: {$file_type};\n" .
                      
" name=\"{$file_name}\"\n" .
                      
"Content-Transfer-Encoding: base64\n\n" .
                      
$data "\n\n" .
                      
"--{$mime_boundary}--\n";
        }
        
$message StripSlashes($message);
        
$sent = @mail($to$subject$message$headers);
        if(
$sent) echo "<h1>Formulář byl úspěšně odeslán</h1>";
        else      echo 
"<h1>Formulář se nezdařilo odeslat</h1>";
    }
    if(
$valid!==1) {
        echo 
"<h2>Chyba...</h2>$err_msg";
        echo 
"<p>Klikněte na Zpět a zkuste znovu";
    }
}
else { 
// není příloha
    
$message StripSlashes($message);
    
$sent = @mail($to$subject$message$headers);
        if(
$sent) echo "<h1>Formulář byl úspěšně odeslán</h1>";
        else      echo 
"<h1>Formulář se nezdařilo odeslat</h1>";
}
?>
</body>
</html>


Freeware.
Tento program je volné programové vybavení; můžete jej šířit a modifikovat podle libosti.
Je rozširován v naději, že bude užitečný, avšak BEZ JAKÉKOLI ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI PRO URČITÝ ÚČEL.

Všechny zde popsané soubory si můžete též stáhnout: Stáhnout zdarma script pro odesílání emailu s přílohou

-- Autor: Neznámý
--úpravy: Blassen


Sdílet na FB


Bookmark using any bookmark manager!
Publikoval: Blassen

Možnosti
 Vytisknout článek Vytisknout článek
 PDF PDF
"Odeslání mailu s přílohou" | Přihlásit/Registrovat | 2 komentářů | Vyhledávání v diskusi
BLASSENweb jako provozovatel blassenweb.net a přidružených subdomén, nezodpovídá za obsah komentářů. Provozovatel služby si vyhrazuje právo zasahovat do diskuze v případě používání vulgarizmů, osočování a též vždy, když je obsah příspěvku spůsobilý naplnit skutkovou podstatu trestného činu nebo zasahuje do práva na ochranu osobnosti třetích osob. Ve vyjímečném případě může přistoupit k smazání příspěvků nebo zablokování přístupu i těm, kteří přímo neporušují kodex, ale jejich působení je dlouhodobě překážkou slušné a věcné diskuze a obtěžuje ostatní diskutující. Přispíváním komentářů vyjadřujete svůj souhlas s těmito pravidly a zavazujete se je dodržovat. Přidáním příspěvku souhlasíte s možným dalším uveřejněním na blassenweb.net bez nároku na finanční odměnu.

Není povoleno posílat komentáře anonymně, prosím zaregistrujte se.

Re: Odeslání mailu s přílohou (Hodnocení: 1)
Od: luckin315 (lukasliebscher@seznam.cz) - Neděle, 14.02. 2010 - 19:23:04
(O uživateli | Poslat soukromou zprávu)
Dobrý den, zkouším tento formulář ale mám problém. nefunguje mi to odesílání přílohy...dam tam třeba obrazek, kterej splnuje velikost, dam odestal. vse se odesle ale v priloze mailu soubor neni, jak je to mozne?dekuji za radu
Re: Odeslání mailu s přílohou (Hodnocení: 1)
Od: Blassen (blassenweb@firemni.cz) - Neděle, 14.02. 2010 - 22:40:32
(O uživateli | Poslat soukromou zprávu) http://blassenweb.net
 
Asi si někde udělal chybu, protože běžně to funguje. Určitě ke stažení je funkční verze.

reklama
UNITED-NUKE CMS - Just manage! Mapa Stránek Magic SEO URL - Optimalizace pro vyhledávače Page Rank Hjosef.net&redakční systémy webmaster tools, Hry, UNITED/PHP Nuke a jiné zajímavosti xml - rss - rdf Validate this feed at feedvalidator.org Seo servis

online casino
Games, reviews, tips, strategies, odds and much more.
Tato prezentace využívá systém pro správu obsahu united-nuke.
Čas potřebný ke zpracování stránky: 0.11 sekund
Vaše šťastné číslo: 117
Přidej vlastní deníčekPřidej vlastní deníček
Dnes je : 02. 09, 2010
Domů >téma> PHP & MySQL > Odeslání mailu s přílohou
| pomoc | kontakt | reklama | volná místa | pravidla | BLASSENweb na Facebooku | email | Copyright © 2004 - 2010 by BLASSENweb
Veškeré ukázky zdrojových kódu můžete používat bez omezení. Text těchto stránek však nesmíte kopírovat bez souhlasu autora.
Autor nenese žádnou zodpovědnost za případné škody způsobené v souvislosti s obsahem tohoto webu.
Magic SEO URL - Optimalizace pro vyhledávače