» »

Funkcija mail() v PHP

Funkcija mail() v PHP

Camel ::

Zdravo,

rad bi naredil enostavno formo, s pomočjo katere bi lahko poslal podatke na mail (uporabil sem funkcijo mail()- PHP). Podatke iz forme dobim, tudi funkcija mail() se izvede brez napake, vendar mail ne pride na izbrani naslov. Mogoče ve kje bi lahko bil problem. kakšne nastavitve samega php-ja. stran zaženem preko IIS na win 7. thx

<?php
$naslov = "xxxx@neki.si";
$zadeva = $_POST["zadeva"];
$vsebina = $_POST["vsebina"];

mail($naslov, $zadeva, $vsebina);
?>
  • spremenil: Camel ()

HardFu ::

Ne posiljaj mailov iz svojega serverja, rajsi uporabi kaksen service, kot je naprimer Mailgun. Imajo tudi free paket za 200 mailov na dan, kar za zacetek povsem ustreza - ce pa posljes vec mailov dnevno, pa se ti itak splaca placat. Manj problemov in vzdrzevanja.
http://codeable.io

Camel ::

gre bolj za test kako bi podatke preko forme poslal na mail. podobno kot imajo razna podjetja za kontakt stranke.
Dolce far niente

hobbit ::

super zadeva za pošiljanje maila je razred PHPMailer

urosz ::

jap, še en glas za PHPMailer

blackbfm ::

Ne posiljaj mailov iz svojega serverja, rajsi uporabi kaksen service, kot je naprimer Mailgun.


zakaj?

neoserv ::

@Hardphuck ima načeloma prav, saj s to varianto pošiljaš pošto s strežnikov, ki so ponavadi whitelistani pri veliko spam filtrih, obenem pa tako zadevo sprogramiraš enkrat in potem deluje vedno in povsod.
Poleg tega ti ni potrebno skrbeti za razne mehanizme, ki preprečujejo spam, kot je npr. captcha na obrazcih.

Je pa res, da je to mogoče overkill za 1 preprost kontaktni obrazec in podobne stvari.
Kot sta @hobbit in @urosz ze predlagala, je razrez PHPMailer res pogost in verjetno se najde 100 in 1 tutorial.
NEOSERV.SI = Prijazno & hitro SSD gostovanje že 15. leto.
900+ domenskih končnic po noro nizkih cenah!
Brezplačna selitev od starega ponudnika.

Camel ::

tale PHPMailer zgleda vredu zadela, bom tudi preizkusil. Zaenkrat pa bi rad rešil tale problem...glede na to, da je iz html forme dobim točne podatke v php, mail() funkcija pa bi tudi morala delovati, je očitno problem nekje v nastavitvah serverja ali pa v php.ini datoteki. Kaj bi lahko blo? Vsakega nasveta bom zelo vesel.
Dolce far niente

Marino88 ::

Jaz na svoji spletni strani uporabljam PHP skripto in imam aktiviran spam catcher in nimam problemov z spemom in ne mamram teh tihrd party vmesnikov, ker ponavadi imajo tko narejeno, da ko obiskovalec izpolni obrazec in kliklne pošlji se potem pokaže besedilo o poslanem obrazcu v agnleščini in pol še na stedini naslov spletne strani, prek katere poteka pošiljanje.

Preveri če ti server dopušča PHP, ker veliko jih ne.
In skripta je nepravilna.
Kje imaš gostovanje? Si jo že naložil na srever?

Zgodovina sprememb…

  • spremenilo: Marino88 ()

HardFu ::

blackbfm je izjavil:

Ne posiljaj mailov iz svojega serverja, rajsi uporabi kaksen service, kot je naprimer Mailgun.


zakaj?


Ce posiljas iz svojega serverja, ponavadi nastavis headerje napacno. Mozne posledice:

  • Mail serverji oznacijo kot spam

  • Clienti oznacijo kot spam

  • (zaradi oznacb z spamom) pades v kaksen black list, in nenadoma noben mail vec ne pride, in ne mores nic, samo IP lahko zamenjas (in upas da bo to popravilo situacijo)

  • V nekih primerih so maili celo ilegalni

  • Sumniki ne delajo pravilno

  • Odgovarjanje na tak mail je nemogoce



Poleg tega imajo servisi (vsaj Mailgun, ko ga uporabljamo mi, drugi pomoje niso dosti drugacni) tudi loge in tracking, da lahko vidis kaj se dogaja z mailom, torej ali je bil poslan, oziroma ali je bil odprt, lahko si nastavis pogojno forwardiranje, dokumentacija za namestitev pa je precej izcrpna, tako da implementacija ponavadi traja nekaj deset minut in je to to.

Zadnja, indirektna prednost je pa ta, da imas na serverju eno skrb manj, kar na dolgi rok tudi ni nezanemarljivo ;)
http://codeable.io

Camel ::

Marino88 je izjavil:

Jaz na svoji spletni strani uporabljam PHP skripto in imam aktiviran spam catcher in nimam problemov z spemom in ne mamram teh tihrd party vmesnikov, ker ponavadi imajo tko narejeno, da ko obiskovalec izpolni obrazec in kliklne pošlji se potem pokaže besedilo o poslanem obrazcu v agnleščini in pol še na stedini naslov spletne strani, prek katere poteka pošiljanje.

Preveri če ti server dopušča PHP, ker veliko jih ne.
In skripta je nepravilna.
Kje imaš gostovanje? Si jo že naložil na srever?


zaenkrat stran zaganjam, kar preko IIS na localhost. PHP sem naložil, prav tako sem v php.ini nastavil najnujnejše nastavitve za delovanje php.
Dolce far niente

McAjvar ::

Si v php.ini preveril tudi nastavitve za mail funkcijo?
"[...] the advance of civilization is nothing
but an exercise in the limiting of privacy."
- Isaac Asimov

Camel ::

McAjvar je izjavil:

Si v php.ini preveril tudi nastavitve za mail funkcijo?


takle mam:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = moj.mail@siol.net
Dolce far niente

McAjvar ::

Pa imas namescen kak postni program, ki ti na localhostu na portu 25 cepi in sprejema posto, ki jo nato posilja naprej po svetu? Ce nimas nicesar taksnega, si verjetno ravnokar ugotovil, zakaj ti ne dela.
"[...] the advance of civilization is nothing
but an exercise in the limiting of privacy."
- Isaac Asimov

Camel ::

McAjvar je izjavil:

Pa imas namescen kak postni program, ki ti na localhostu na portu 25 cepi in sprejema posto, ki jo nato posilja naprej po svetu? Ce nimas nicesar taksnega, si verjetno ravnokar ugotovil, zakaj ti ne dela.


nimam nič takega, js sem mislil, da mi IIS in PHP ze vse to naredita? Mi lahko kakšen tak program priporočaš? Drugače pa js ne rabim pošiljati mailov okoli. jaz bi samo rad, da preko forme dobim neko povpraševanje na svoj mail, ki je že vnaprej določen v kodi. Mi je pa jasno, da mora biti vmes nek protokol SMTP...

Camel ::

sem rešil, tako da sem dal SMTP kar od siola pa dela. začasno bo ze vredu. Kateri poštni program pa drugače priporočate?

Marino88 ::

Jaz uporabljam roundcube. Enostaven in pregleden.

4kik4 ::

lahko uporabiš tudi swiftmailer, ki dejansko pošilja mail preko tvojega gmaila

//pošlje mail preko swiftmaila
	function mail_poslji($besedilo,$mail_naslov,$mail_e_naslov_posiljatelj)
	{	
		require_once 'lib/swift_required.php';
		$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
		->setUsername('nekdo@gmail.com') // or your gmail username
		->setPassword('password'); // or your gmail password	
		$mailer = Swift_Mailer::newInstance($transport);	
		$message = Swift_Message::newInstance($mail_naslov)
		->setFrom(array($mail_e_naslov_posiljatelj => 'Nekdo'))
		->setTo(array('prejemnik@neki.com'))
		->setBody($besedilo,'text/html');	
		$result = $mailer->send($message);
	}


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[PHP] Nedelujoči mail()

Oddelek: Programiranje
51386 (1256) Miko55
»

Kontakt php

Oddelek: Izdelava spletišč
6974 (835) gnomee
»

Linux sendmail - Problem !!!??

Oddelek: Omrežja in internet
151884 (1645) n0name
»

Problem z formo in POST

Oddelek: Izdelava spletišč
91501 (849) Brilko
»

phpnuke 6.9

Oddelek: Izdelava spletišč
51042 (952) glavic

Več podobnih tem