Autor Zpráva
Ivanhoe
Profil *
Ahoj,

všelikých ukázek kodu, jak odesilat e-mail pomoci php je všude vcelku dost., dokonce i tady., v nejčastějších obtížích se o e-mailech hovoří.., nicméně, chtěl bych Vás poprosit, jetli neznáte nějaký tutoriálek, který je opravdu intuitivní a defacto okamžitě funkční., aby to byla nějaká ukázka třeba se 4ma input boxikama. Prostě., aby to pochopil i člověk., který viděl PHP z rychlíku., a to ještě před lety ve škole. Díky za rady - Váš čas.
fuckin
Profil *
ty 4 input boxiky jsou nejak dulezite?
Nestaci jen ciste php ? Myslim ze navodu je vsude dost, a kazdy funguje...
Alphard
Profil
Třeba nějak takhle, script předpokládá, že bude uložen v iso-8859-2.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Vzkazník</title>

<style type="text/css">

* { margin: 0; padding: 0; }

html { height: 100%; font-size: 62.5% }

body { height: 100%; background-color: #FFFFFF; font: 1.2em Verdana, Arial, Helvetica, sans-serif; }


/* ==================== Form style sheet ==================== */

form { margin: 25px 0 0 29px; width: 450px; padding-bottom: 30px; }

fieldset { margin: 0 0 22px 0; border: 1px solid #095D92; padding: 12px 17px; background-color: #DFF3FF; }
legend { font-size: 1.1em; background-color: #095D92; color: #FFFFFF; font-weight: bold; padding: 4px 8px; }

label.float { float: left; display: block; width: 100px; margin: 4px 0 0 0; clear: left; }
label { display: block; width: auto; margin: 0 0 10px 0; }
label.spam-protection { display: inline; width: auto; margin: 0; }

input.inp-text, textarea, input.choose, input.answer { border: 1px solid #909090; padding: 3px; }
input.inp-text { width: 300px; margin: 0 0 8px 0; }
textarea { width: 400px; height: 150px; margin: 0 0 12px 0; display: block; }

input.choose { margin: 0 2px 0 0; }
input.answer { width: 40px; margin: 0 0 0 10px; }
input.submit-button { font: 1.4em Georgia, "Times New Roman", Times, serif; letter-spacing: 1px; display: block; margin: 23px 0 0 0; padding: 4px 8px}

form br { display: none; }

.zdroj {margin: 0 30px; font-size: 10px}

/* ==================== Form style sheet END ==================== */

</style>

<!--[if IE]>
<style type="text/css">

/* ==================== Form style sheet for IE ==================== */

fieldset { padding: 22px 17px 12px 17px; position: relative; margin: 12px 0 34px 0; }
legend { position: absolute; top: -12px; left: 10px; }
label.float { margin: 5px 0 0 0; }
label { margin: 0 0 5px 0; }
label.spam-protection { display: inline; width: auto; position: relative; top: -3px; }
input.choose { border: 0; margin: 0; }
input.submit-button { margin: -10px 0 0 0; }

/* ==================== Form style sheet for IE end ==================== */

</style>
<![endif]-->
</head>


<body>

<?php
if (isset ($_POST['odeslano']))
{
function cz_mail ($to, $predmet, $zprava, $head = "", $kod)
       {  $predmet = "=?utf-8?B?".base64_encode(iconv($kod, "UTF-8", $predmet))."?=";
          $head .= "MIME-Version: 1.0\n";
          $head .= "Content-Type: text/plain; charset=\"utf-8\"\n";
          $head .= "Content-Transfer-Encoding: base64\n";
          $zprava = base64_encode (iconv ($kod, "UTF-8", $zprava));
          return mail ($to, $predmet, $zprava, $head);  }
          
          $zprava = "Mail: ".$_POST['mail']."\r\nIM: ".$_POST['im']."\r\n".$_POST['vzkaz'];
          
          if (cz_mail ("***", "Vzkaz z webu", $zprava, "From: =?UTF-8?B?".base64_encode("Jmeno")."?=<ja@email.cz> /r/n", "ISO-8859-2"))
            echo "Vzkaz byl odeslán<br>";
          else
            echo "Došlo k chybě, je mi líto.<br>";
}
?>


	<form action="kontakt.php" method="post">
		<!-- ============================== Fieldset 1 ============================== -->
		<fieldset>
			<legend>Kontakt:</legend>
				<label for="input-one" class="float"><strong>E-mail:</strong></label><br>
				<input class="inp-text" name="mail" id="input-one" type="text" size="30"><br>

				<label for="input-two" class="float"><strong>IM:</strong></label><br>
				<input class="inp-text" name="im"  id="input-two" type="text" size="30" value="ICQ, Jabber, Yahoo">
		</fieldset>
		<!-- ============================== Fieldset 1 end ============================== -->


		<!-- ============================== Fieldset 3 ============================== -->
		<fieldset>
			<legend>Vzkaz:</legend>
			<textarea name="vzkaz" id="message" cols="30" rows="5" title="Note or message">Zde vložte vzkaz. Pokud nevyplníte kontakt, nebudu vám moci odpovědět.</textarea><br>
			<label class="spam-protection" for="protection">Ochrana proti spamu: <strong>6&nbsp;+&nbsp;5&nbsp;=</strong></label><br>
			<input class="answer" type="text" name="antispam" id="protection" size="5" value="11">
		</fieldset>
		<!-- ============================== Fieldset 3 end ============================== -->

		<p><input class="submit-button" type="submit" alt="SUBMIT" name="odeslano" value="Odeslat"></p>
	</form>

<p class="zdroj"><a href="http://www.mantisatemplates.com/free-html-css-forms.php">http://www.mantisatemplates.com/free-html-css-forms.php</a></p>
  </body>
</html>
Budulinek
Profil
Ivanhoe
Jestli to chceš nějak zevrubně popsat, tak je to nějak takhle...

odeslání mailu zajišťuje funkce mail, tedy:

mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )


vrací true při úspěšném provedení a false při selhání, takže tím si pak můžeš ověřit, jestli mail odešel nebo ne. Je to v zásadě docela jednoduchá věc, z html formuláře si odešleš na php script vstupy (atribut name je roven proměnné $_POST['name'] ), formulář uživatel vyplní, může zadat cokoli si zamaneš, a odešle na zpracování (atribut action v tagu form). Z funkce mail () je jasné, že první proměnná v závorce bude mailová adresa, kam bude mail odeslán - tedy tvoje. Druhá proměnná je předmět zprávy, třetí pak zpráva samotná a pak hlavičky a případné další parametry. Řečeno jednoduše, proměnné $_POST prostě odešleš do do funkce mail, která mail sestaví a odešle. Stačí je jen uvést ve správném pořadí...

Samozřejmě, tohle jen naprosto základní způsob, jak mail odeslat. Určitě je vhodnější si naspsat nějakou funkci, jako třeba Alphard výše, která ti bude dejme tomu sestavovat zprávu, přidá hlavičky a já nevím co ještě. Pak ještě existují php mailery, které jsou řešeny komplexněji a velmi jednoduše - v podstatě hodně podobně jako prosté využití fce mail() - dokáží odesílat mail třeba i s přílohou atd.

Stačí si prostudovat ty příklady v manuálu, párkrát si vyzkoušet poslat mail sám sobě a člověk hned zjistí, že na tom nic není :-)
Ivanhoe
Profil *
Krásný příklad. Problém je, že když použiji charset=iso-8859-2., tak mi to zboří celou stránku založenou na css. Bez toho "iso-8859-2"., to fungovat nebude ?
Ivanhoe
Profil *
Tak to s css jsem vyřešil. Ještě prosím poraďte., kam všude napsat svuj e-mail, například george@seznam.cz. Zatím mi kontakt.php pise: Do�lo k chybě, je mi líto.
AM_
Profil
buď si změň v tomhle souboru text 'ISO-8859-2' na svoje kódování, nebo si změň své kódování na iso ;) s CSS nemá kódování nic společného.

Posíláš to z hostingu, nebo domácího serveru? je potřeba mít nastavený smtp server...
Ivanhoe
Profil *
AM_:

z hostingu.
AM_
Profil
tam by to mělo být nastavené... a nevypíše volání mail() nějaký warning?
Ivanhoe
Profil *
Zadny warning., proste ta funkce probehne a vypiše: "doslo k chybe, je mi lito". Ja měl pripraveny send-mailer v asp.netu. Jake bylo ale moje prekvapeni, ze muj placeny hosting to nepodporuje, takze ted to musim nejak uplacat v php, kteremu vubec nerozumim. V asp jsem jeste musel nastavit smtp seznamu aby to fungovalo., takze konkretne toto: mx1.seznam.cz ... tady ale nic nevidím..
Ivanhoe
Profil *
Pokud tenhle skript funguje a já předpokládám že ano, potom bych potřeboval jenom pomoct s tim, kam mam napsat e-mail na který má pošta chodit., konkretne: george@seznam.cz..případně smtp kam vepsat., pokud to php vyzaduje. Potom by vše asi mělo fungovat.
Alphard
Profil
Ivanhoe:
kam mam napsat e-mail na který má pošta chodit
místo těch ***Lze použít i jiné kódování, ale je nutné správně ho zadat
 if (cz_mail ("***", "Vzkaz z webu", $zprava, "From: =?UTF-8?B?".base64_encode("Jmeno")."?=<ja@email.cz> /r/n", "ISO-8859-2"))
Ivanhoe
Profil *
Alphard:

Diky., už to funguje bezvadně.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: