Dobrý den!
Mám na intranetu stránky ze kterých mi ale nejdou odesílat maily z php (funkce mail()), protože nemám SMTP server!
Chci se zeptat jestli ty maily z intranetu nejdou posílat např. přes mé stránky na webzdarma, kde tato funkce funguje (nějaké přesměrování,...)!
Děkuji za jakoukoliv odpověď!
Přejí krásný zbytek dne!
Jura
<HTML>Zavoláš PHP skript na WZ a ten pošle to, co mu předáš přes $_GET nebo $_POST.</HTML>
Přiznám se, že jsem z toho trochu jelen, ale pokusím se to nějak zkloubit dohromady!
Díky!
na webzdarma si napises skript, dejme tomu:
<?php // mail.php
$result = mail($_POST['to'], $_POST['subject'], $_POST['text'], "From: $_POST[from]");
if ($result) echo "Zprava byla odeslana";
else echo "Zprava nemohla byt odeslana";
?>
a na svy strance budes mit formular:
<form method="post" action="http://tvoje-domena.webzdarma.cz/mail.php">
<input type="text" name="from" />
<input type="text" name="to" />
<input type="text" name="subject" />
<textarea name="text"></textarea>
<input type="submit">
</form>
Po odeslani formulare se data zadana do tohoto formulare poslou metodou POST na tvuj skript na serveru webzdarma, ktery je zpracuje tak, ze obsah techto odeslanych promennych "dosadi" do funkce mail(), ktera odesila maily.
Pozor na omezeni teto funkce na WZ, je mozne odeslat pouze deset mailu za hodinu. Po prekroceni tohoto hodinoveho limitu zadne dalsi maily odeslany nebudou (skript uvedeny vyse by o tom mel informovat, funkce vrati hodnotu false).
Referencni manual k funkci mail() najdes na adrese: http://cz2.php.net/manual/cs/function.mail.php
Informace k omezeni skriptu na WebZdarma: http://www.webzdarma.cz/pp.html?2#2
Zhruba tak. Mimochodem donny dik za ten limit 10 za hodinu - mozna ze tohodle pouziju nekdy taky, a je dobre vedet limity :)
Ale co jsem chtel rict je, ze by bylo prnejmensim vhodne ten skript trochu zabezpecit, tak aby nemohl maily posilat kdekdo - to by se jiste wz ani Vam nelibilo. Naskyta se jednoducha ochrana - zjistit IP tech 'volajicich' stranek a do mail.php dat kontrolu
if ($_SERVER['REMOTE_ADDR'] != 'ip.ip.ip.ip') exit('Denied.');
Taky bych rekl, ze pokud to ma fungovat jiny skript, neni formular nutny (staci mail.php) a naopak bude nutna metoda GET misto POST (nebo ne? - pokud nekdo vite jak otevrit obecne url v PHP s predanim POST parametru, sem s tim! :D)
zabezpeceni by bylo urcite vhodny
$_SERVER['REMOTE_ADDR'] obsahuje ip adresu uzivatele, nikoliv volajiciho skriptu. takze takhle nepouzitelny. adresa volajiciho skriptu je v refereru, ale na ten se neda spolehat.
formular samozrejme nutny je, jak by asi uzivatel ten mail napsal? samozrejme formular bude na te strance mimo wz a na wz v tom odesilacim skriptu nebude.
metoda get rozhodne nutna nebude, proc taky? post bude normalne fungovat. ze je formular a zpracovavajici skript na ruznych serverech vubec nevadi.
Aha, pravda. Trochu sem to prekomplikoval - ja mel na mysli, ze by skript mimo wz volal ten na wz pres fopen. Pak by fungovalo i to zabezpeceni, protoze uzivatel by se rovnal volajicimu.