IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Martina Didáková:5.11.2018 10:59

Ahoj, potřebuji zprovoznit na stránkách kontaktní formulář, aby se email odeslal majiteli webu a aby se uživateli ukázal text, že je email odeslán.

mám to zatím takto a nevím jak tomu docílit.. pomůžete někdo prosím?

function OdesliEmail($pri­jemce,$predmet,$ob­sah,$odesilatel) {
global $domena;

$upravenadome­na=ereg_repla­ce("http://","",$do­mena);

if (SubStr($upra­venadomena,0,9)!="lo­calhost") { /* nejsme na localhostu, mužeme odeslat e-mail /
$eol = "\r\n"; /
End of line. */

$replyTo = $odesilatel;
$encodeOdesila­telJmeno = base64_encode("in­[email protected]");
$encodeOdesila­telJmeno = "=?utf-8?B?".base64_en­code($odesila­telJmeno)."?=";

/* Definice hlaviček e-mailu. */
$headers .= "From: $encodeOdesila­telJmeno <$odesilatel>"­.$eol;
$headers .= "Return-To: $replyTo".$eol;
$headers .= "MIME-Version: 1.0".$eol;
$headers .= "Content-Type: text/html; charset=utf-8".$eol;
$headers .= "Content-Transfer-Encoding: base64".$eol.$eol;

$encodePredmet = "=?utf-8?B?".base64_en­code($predmet)­."?=";

$obsah = "<html>
<body>$obsah</body>
</html>";
$encodeObsah = wordwrap(base64_en­code($obsah), 76, PHP_EOL, true);
$finalObsah = $encodeObsah;

mail($prijemce, $encodePredmet, $finalObsah, $headers);

}
}

 
Odpovědět
5.11.2018 10:59
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6.11.2018 8:19

Musis ale pocitat s tim, ze servery budou blokovat hromadne odesilani mailu.

google = php mail utf8

<?php
function OdesliEmail($from, $to, $subject, $message, $domena)
{
if ($domena=="localhost ") {return false;} // upraveno

$from      = "=?utf-8?B?".base64_encode($from)   ."?=";
$to        = "=?utf-8?B?".base64_encode($to)     ."?="; // pridano, nejsem si ted jisty, ale asi by se melo kodovat vse
$subject   = "=?utf-8?B?".base64_encode($subject)."?=";

$headers   = array();                           // to jsem zmenil jen na array, pro zjednoduseni
$headers[] = "From: $from";                     // zmeneno, cely ten radek byl spatne
$headers[] = "Reply-To: $from";
$headers[] = "Return-To: $from";                // pridano
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-Type: text/html; charset=utf-8";
$headers[] = "Content-Transfer-Encoding: base64";
$headers[] = "X-Mailer: PHP/" . phpversion();   // pridano
$headers[] = "";
$headers   = implode(PHP_EOL, $headers);        // konverze array na string pridanim PHP_EOL = \r\n nebo \n v nekterych verzich php

$message   = "<html>\n<body>\n$message\n</body>\n</html>";
$message   = wordwrap(base64_encode($message), 76, PHP_EOL, true); // tady by se to asi nemuselo wrapovat; a nejsem si jisty, jestli i body by nemelo projit kodovanim na utf8

return mail($to, $subject, $message, $headers); // pridano return
}

OdesliEmail("[email protected] <[email protected]>", '[email protected]', 'test', 'test', $_SERVER['HTTP_HOST']);

// http://php.net/manual/en/function.mail.php
// error_reporting mas zapnute? Jakou to vypisuje chyb?
// http://php.net/manual/en/reserved.variables.server.php
//function OdesliEmail($prijemce,$predmet,$obsah,$odesilatel) {
//global $domena;       // upraveno
//$upravenadomena=ereg_replace("http://","",$domena);
//$replyTo = $odesilatel;
//$encodeOdesilatelJmeno = base64_encode("[email protected]");
//$encodeOdesilatelJmeno = "=?utf-8?B?".base64_encode($odesilatelJmeno)."?=";
?>
Editováno 6.11.2018 8:22
 
Nahoru Odpovědět
6.11.2018 8:19
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6.11.2018 8:25

jo, tam by melo byt

if OdesliEmail(...) echo 'odeslano' else echo 'chyba pri odesilani';

Navic je dobre vypsat cas, kdyz to testujes, aby bylo videt, ze doslo k obnoveni stranky.

echo date('m/d/Y h:i:s a', time());
 
Nahoru Odpovědět
6.11.2018 8:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.