Stránka 1 z 1

Formulář pro odesílání emailů.

Napsal: sob 27. srp 2005, 21:29
od Cici
Nevíte jak se dá vytvořit formulář jako maj tady: www.bluebord.cz. Myslím tím ten co rychle odešle autorovi e-mail. Tam se to menuje Blueform. :oops: :oops: :roll: :roll:

Napsal: sob 27. srp 2005, 21:53
od Lamicz
Cus, napr. tak v PHP:

Kód: Vybrat vše

<?php

$action = $_GET['action'];

if($action == send_email){
  
  $message = $_POST['message'];
  $address = "tvuj@email.cz";
  $subject = "nejaky predmet...";
    
    if($message != ""){
      mail("$address","$subject","$message");            
    }
}

?>

<H2>Poslat e-mail</H2>
<FORM METHOD="POST" ACTION="?action=send_email">
<table>
<tr>
<td>Zpráva:</td>
<td><TEXTAREA NAME="message" ROWS="2" COLS="20"></TEXTAREA></td>
</tr>
<tr>
<td><INPUT TYPE="SUBMIT" VALUE="Poslat"></td>
</tr>
</table>
</FORM>
// EDIT: Tak sry, Jaspere :oops:, to, co mam tady ja, je naprosty minimum pro funkci mail(). ;)

Napsal: sob 27. srp 2005, 21:59
od Jasper
Jde to udelat treba takto. Budes potrebovat nejaky hosting s podporou PHP. Budes mit 2 soubory:

plus.php - tento soubor zobrazi formular na odesilani mailu:

Kód: Vybrat vše

<html>
<head>
<title>mail</title>
</head>
<body>
<?php
$hlaska=$_GET["hlaska"];
if($hlaska==1) echo "Mail byl uspesne odeslan.";
?>
<form method="POST" action="zpracuj.php">
	<p>Váš email : <input type="text" name="email" size="20"></p>
	<p>Předmět: <input type="text" name="predmet" size="20"></p>
	<p>Zpráva: <textarea rows="2" name="zprava" cols="20"></textarea></p>
	<p><input type="submit" value="Odeslat" name="B1"></p>
</form>
</body>
</html>
zpracuj.php - provede odeslani mailu

Kód: Vybrat vše

<?php
$komu="JasperCZ@seznam.cz";

$email=$_POST["email"];
$predmet=$_POST["predmet"];
$zprava=$_POST["zprava"];


$hlavicky  = "From: $email\r\n"; // od koho e-mail posíláme
$hlavicky .= "X-Priority: 3\r\n"; // priorita 1 (nejvyšší), 3, 5 (nejnižší)
$hlavicky .= "X-Mailer: moje PHP\r\n"; // informace o způsobu odeslání
$hlavicky .= "Return-Path: <$email>\r\n"; // zpáteční mailová adresa


mail($komu, $predmet,$zprava, $hlavicky);

header("Location: http://tvuj_web.cz/plus.php?hlaska=1"); 
?>
Misto toho $komu="JasperCZ@seznam.cz"; tam dopis mezi ty uvozovky svuj mail

Ale bacha na ruzne freehostingy, kde maji vetsinou omezene odesilani emailu pomoci te funkce mail. Treba na ic.cz je to tusim na 50 mailu za hodinu...


// EDIT sakris, nez sem to dopsal, tak uz me nekdo predbehl :(

Napsal: sob 27. srp 2005, 22:13
od Cici
Moc dík. :)

Napsal: pon 19. zář 2005, 01:46
od Drom
server musi podporovat posilani pres funkci mail(). Napr. pokud tam pobezi Kerio Mail Server, tak to bude jinak:

Kód: Vybrat vše

	include('Mail.php');
	$zprava = 'nejakej text, co chces poslat';
	$headers['Return-Path']	= 'adresa@odesilatele';
	$headers['From']		= 'adresa@odesilatele';
	$headers['Subject']		= 'Predmet';
	$headers['Content-Type'] = 'text/html; charset="Windows-1250"';
	$headers['Date'] 		= Date ("r");
	$headers['Importance']	= "Normal";
	$params['host']		= 'localhost';             // adresa serveru
	$params['port']		= '25';                        // port pro pipojeni k serveru
	$params['auth']		= false;
	$params['username']		= '';               // user pro pripojeni
	$params['password']		= '';               // heslo pro pripojeni

	$headers['To'] = 'mail@adresata';             // mail prijemce
	$mail_object =& Mail::factory('smtp', $params);
	$mail_object->send($headers['To'], $headers, $zprava);

       // !!! hlavicka $headers['To'] MUSI byt stejna adresa jako prvni parametr funkce send() - posledni radek - jinak to neposila