ohjeita web-sivuston tekijälle
Yksi palvelimella sijaitsevien skriptien yleisimmistä tarkoituksista on lähettää lomakkeesta kerätty data sähköpostiviestinä eteenpäin.
PHP:ssa on funktio mail, joka lähettää sähköpostia. Se toimii seuraavasti:
mail( vastaanottajan osoite, viestin otsikko, viesti, lisäkentät );
Esimerkkilomakkeella ja -skriptillä voit lähettää itsellesi tervehdyksen sivut.web:istä sähköpostitse:
<html> <head> <title>lähetä itsellesi tervehdys</title> </head> <body> <form action="sahkoposti.php" method="post"> <p>Sähköpostiosoitteesi<br> <input type="text" name="osoite"></p> <p> <input type="submit" value="Lähetä tervehdys"> </p> </form> </body> </html>
<html> <head> <title>tervehdys lähetetty</title> </head> <body> <? mail($osoite, "Tervehdys sivut.web:istä!", " Hei, Tämä on tervehdys sivut.webin PHP-oppaasta osoitteesta http://www.sivut.org/php/oppaat/sahkopostin_lahetys.html. ", "From: sivut.webin automaattinen tervehtijä <tervehdys@sivut.org>"); ?> <h2>Tervehdys lähetetty osoitteeseen <?echo $osoite?>.</h2> </body> </html>
esimerkit/sahkoposti.html
lähdekoodi (sahkoposti.php)
Seuraava sivu: MySQL-tietokantayhteys.
Warning: mail() [function.mail]: SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE. in xxx/xxx.php on line 67
12.12.2003 22:54Virhe johtuu juurikin safe-modesta. Eli php ei hyväksy mail-funktion viidettä parametria. Lisätietoa mail-funktiosta http://fi.php.net/manual/en/function.mail.php ja safe-modesta http://fi.php.net/features.safe-mode
8.7.2004 01:16Voiko mailin lähettää useammalle henkilölle lomakkeelta samalla kertaa? Esim. palautelomakkeen tiedot haluttaisiin lähettää useammalle henkilölle.
8.7.2004 08:42Toki monta sähköpostia voidaan lähettää. Samassa mail-funktion kutsussa erottele osoitteet pilkuilla tai lähetä kaksi eri sähköpostia (kaksi eri kutsua mail-funktiolle).
2.8.2004 21:08Warning: "sendmail_from" NOT set in php.ini in hakemisto on line 29
Tuollaista valittaa vaikka mitä tekisin...
Näyttäisi siltä, että sendmail_from -muuttujaa ei ole asetettu PHP:n asetuksissa. Jos et pääse muuttamaan palvelimen asetuksia, kokeilepa asettaa muuttuja lausella ini_set('sendmail_from',null); (asetettava ennen mail()-funktion kutsua).
Kannattaa vaivata suoraan palveluntarjoajaa tällaisessa asiassa, jos vaikka asettaisisivat PHP:n asetukset oikein.
Päivää! testasin tätä sähköposti hommaa toisella serverillä.. Muutin koodia ja yritin säätä pientä omaa. Se kuitenkin haluaa tallentaa php tiedoston. Kun painaa lähetä niin selain kysyy mihin tämä php tiedosto tallennetaan. Olisiko mitään neuvoa asian korjaamiseksi vai onko se ihan vain serveristä kiinni?
16.12.2004 12:55Luulisin, että palvelimella ei ole PHP-tukea ja se lähettää koodin tekstinä selaimelle, joka ei osaa sitä näyttää vaan kysyy mitä sille tehdään, jolloin yksi vaihtoehto on tallentaa levylle.
19.12.2004 19:59Käykää joku kattomassa http://tolonen.100free.com mikä meni vikaan.
1.1.2005 23:13Mulla taas ei tapahdu mitään jos painaa lähetä napista.
22.1.2005 09:32Miten sähköpostin lähetykseen voi lisätä kunnon kiitos-sivun tavanomaisen 'echo' -kommentin sijasta. En löytänyt yksinkertaista esimerkkiä.
25.1.2005 00:02hmm, ehkä includen avulla.. en mene mitään sanomaan minte ois mahollista.. pelkkä arvaus...
16.3.2005 15:58Tein tommoisen palautelomakkeen, mutta kommentit eivä tule perille.Mistähän tämä johtuu??
9.4.2005 20:55PHP tuki löytyy palvelimeltani, jostakin kumman syystä noiden $osoite -tyyppisten asioiden poiminta ei toimi. Koetin laittaa tämän esimerkin palvelimelleni, ja kun koetan lähettää postia omaan osoitteeseeni, aukeaa sivu jossa lukee:
"Tervehdys lähetetty osoitteeseen ." eli tuon kirjoitetun osoitteen poiminta ei toimi. Mistähän mahtaa johtua? Jos muokkaan koodia siten, että kirjoitan osoitteeni suoraan, viesti kyllä tulee perille. Toivottavasti ymmärsitte mistä on kysymys :)
Kokeilepa seuraavanlaista muutosta: $osoite --> $_POST["osoite"] ja kaikki muutkin muuttujat samaan tyyliin
Teen tässä eräänlaista yhteydenottolomaketta ja olen vielä aika käsi tuon PHP:n kanssa, tullu meinaan aspilla väännettyy enemmän. Mut enivei, mites tuossa saa sit viestialueeseen monta noita formista haettuja tietoja peräkkäin jos tekee formiin enemmän tekstikenttiä (osoite, puhelinnumero, yms)
6.8.2005 10:56Voisiko näistä ohjeista laajentaa (tai tehdä uuden) MIME-pohjaisen sähköpostinlähetyksen, että mukaan saisi lisättyä liitteen & muut?
8.8.2005 11:35Tämmönen juolahti mieleen et saisiko ton viestin ymmärtää jollai ilveellä html tagia? (meinaan vaa et boldia yms)
30.9.2005 22:33Method Not Allowed
The requested method POST is not allowed for the URL /*****/*****.php.
toi tulee vaan
Ei kukaan tietäis ilmaista palvelinta joka tukee php? Oon löytäny muutaman mutta ne ei oo tukenu mail()
2.10.2005 10:53Parse error: parse error in /data/members/free/tripod/uk/x/x/x/xxxx/htdocs/sahkoposti.php on line 2
Oisko jokin keino saada nuo viestit menemään "Saapuneet"-kansioon roskapostin sijasta? (hotmailissa menee roskapostiin)
3.12.2005 16:49Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in J:\apachefriends\xampp\htdocs\jorgga\vinkki.php on line 11
???
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in J:\apachefriends\xampp\htdocs\jorgga\vinkki.php on line 11
???
Hyvää iltaa. Tämä on kyllä todella OK sivusto, paljon olen php:tä oppinut. Mutta sitten asiaan.
Olen pienillä muutoksilla jo saanut lähes toimivan palautelootan. Ainoa ongelma on tämä virheilmoitus, joka tulee tekstinä sivulle, kun on lähettänyt sen viestin sähköpostiin:
Warning: mail(): SMTP server response: 550 5.7.1 Unable to relay for tomiokorhonen@gmail.com in \\192.168.1.16\webfiles\files\2005-10\473473\lahetys.php on line 26
Muusta en ihan varma ole, mutta se koettaa kertoa, ettei serveri ihan luota tohon miun sähköpostiin. Eli en keksi oikein keinoa, miten sen saisi lähettämään sen postauksen. Kun noi on jotain turva-asetuksia.
Kiitos etukäteen avusta.
okei, ole opettelemassa php:tä ja haluaisin kokeilla luoda lomakkeen, jossa nappia painamalla teksti lähetetään tiettyyn osoitteeseen. Palvelimen pitäisi tukea php:tä (ainakin päivämäärän asettaja esimerkeistä toimi). Olen muokannut kyseistä esimerkkiä seuraavanlaisesti:
HTML:
<html>
<head>
<title>lähetä teksti</title>
</head>
<body>
<form action="sahkoposti.php" method="post">
<p>tekstisi<br>
<input type="text" name="teksti"></p>
<p>
<input type="submit" value="Lähetä teksti">
</p>
</form>
</body>
</html>
PHP:
<html>
<head>
<title>teksti lähetetty</title>
</head>
<body>
<?mail("maili@maili.com", "viesti", "
$teksti;?>
<h2> Teksti on lähetetty </h2>
</body>
</html>
Tulee virheilmoitus:
Parse error: syntax error, unexpected $end in /home/users/tyyppi/sites/tyyppi.kapsi.fi/www/sahkoposti.php on line 10
Olenko käsittänyt homman ihan väärin ? Kiitoksia jo etukäteen !!!
nyt saan skriptin lähettämään mailia tiettyyn osoitteeseen, mutta miksi lomakkeeseen kirjoitettu viesti ei välity ? Ja miksi lähettäjänä sähköpostissa näkyy www-data ?? Onko normaalia ? Otsikko kyllä näkyy :)
22.3.2006 19:16Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\www\laheta.php on line 15
???
Tarviiko tässä asentaa joku mailserveri
23.3.2006 11:17Virheilmoitus SMTP-palvelimen puuttumisesta tulee kun pyörität skriptiä Windowsissa ja samalla koneella ei ole SMTP-palvelinta. Sellaista on turha asentaa pelkästään PHP:n takia, mutta sinulta on jäänyt PHP konfiguroimatta kunnolla.
Aseta SMTP-palvelimen osoite (saat sen palveluntarjoajaltasi) php.iniin tai jos siihen ei ole pääsyä niin sen voi myös asettaa ini_set():llä.
Miten tämmöiseen tulee s-postin lähetys?
http://ameba.lpt.fi/~imponsan/lahetys.jpg
Lähettäjä saattaa siis valita jomman kumman vaihtoehdoista vastaanottajaksi ja toisen kopioksi tai vain toisen vastaanottajaksi eikä ollenkaan kopiota.
Jokaisessa alasvetovalikossa on siis monta nimeä, jotka kaikki ovat eriä. Kaikilla on oma s-postiosoite, joille automaattinen s-posti saattaa mennä.
Warning: mail(): SMTP server response: 550 5.7.1 Unable to relay for tomiokorhonen@gmail.com in \\192.168.1.16\webfiles\files\2005-10\473473\lahetys.php on line 26
Virheilmoitus voi johtua esim. IIS palvelimen käytöstä eli jos kokeilet omalla työasemalla johon on asennettu IIS palvelin löytyy XP -proffesional käyttiksistä.
IIS ei anna oletuksilla lähetellä posteja paikalliselta koneelta jos ei muultakaan. Sinällään hyvä asetus ettei oma kone toimi spammi postien lähettelijänä jonkun viruksen tms johdosta. ELi oletuksena kannattaa pitää asetukset poissa käytöstä.
IIS on sallittava paikallisen koneen eli osoitteen 127.0.0.1 smtp postia
Eli Käynnistä -> Ohjauspaneeli -> Suorituskyky ja ylläpito - Valvontatyökalut -> IIS Palvelut -> Paikallinen tietokone ->SMTP oletusnäennäispalvelin kuvakkeen ominaisuudet (löytyy hiiren oikenpuleisella painikkeella kuvakkeen päällä) -> Käyttö välilehti -> Välitys nappula > Lisää IP osoite 127.0.0.1 -> peruuttele ok painikkeella takaisin.
PHP koodissa ini asetukset ellei niitä ole php.inissä määritelty
<?php
ini_set("smtp","smtp.suomi.net"); //lähettävä smtp palvelin tarkista yhteyden tarjoajalta esim. on baana
ini_set ("sendmail_from","oma.nimi@loppu.osa"); //lähettäjä kuka lähettää
mail('kelle.lahetet@loppu.osa', 'My Subject', "viesti tähän");
?>
Pystyykö tuohon scriptiin laittamaan kopio ja piilokopio kenttiä?
Kiitos.
Toimii muuten moitteettomasti, mutta sähköposti ei tule perille asti. Mitä tehdä? :S
Eli siis esiin tulee normaali teksti ilman mitään virheilmoituksia, mutta sähköpostissa ei vaan näy mitään O_o
Venailepa vähän aikaa ja kato huomen uudestaan. Jos ei nyt vielkään oo tullu ni mee vaik www.ohjelmointiputka.net ku sielki on PHP-opas.
31.5.2007 01:26Moi !
Olisi ongelma johonka en ole löytänyt vastausta.
Mulla on sivut PHP:llä tehtynä. Minulle lähetetyt kuvat nimetään satunnais generaattorilla ja pienennetään näyttökuvaksi ja orginaali tallennetaan palvelimelle.
Saan sähköpostin kun kuva on tullut.
JA sitten se ongelma. Haluaisin tämän pienennetyn kuvan sähköpostiin mukaan. Eli kuinka sellainen toteutetaan. Palvelimella on siis valmiiksi n.200 pix kuva jota voisi hyödyntää.
Tomppa
Mietin vaan että mistä saa kirjotettuu sen viestin mitä se lähettää???
24.10.2007 18:24Ei toimi! Lomakkeen tieto ei lähde minnekkään. Se vaan ilmoittaa että tieto lähti osoitteeseen . Eli siinä ei ede näy osoitetta? Mitä tehdä
21.4.2008 10:12Kiitos hyödyllisestä sivustosta! Lomakkeeni toimii muuten, mutta ääkköset näkyy sähköpostiin lähetetyssä viestissä väärin. Osaisikohan joku auttaa?