Terve
Sivuillani on tämmöinen pienimuotoinen yhteydenotto sivu.
Koodia:
<FORM METHOD="POST" ACTION="mailto:osoite@palvelin.fi"> <table width="400" border="0" align="center"> <tr> <td>Nimi:<br><input type="text" name="nimi" size="60"></td> </tr> <tr> <td>E-mail:<br><input type="text" name="email" size="60"></td> </tr> <tr> <td>Viesti:<br><textarea name="viesti" cols="45" rows="4"></textarea></td> </tr> <tr> <td align="center"><input type="submit" value="Lähetä"> <input type="reset" value="Tyhjennä"></td> </tr> </table> </form>
Koodin alussa määritetään "Action" lähetä painikkeelle, ja haluaisin, että kun viesti on lähtenyt, tämä siirtäisi lähettäjän joko toiselle sivulle tai tyhjentäisi kentät, tai mahdollisesti printtaisi sivun alkuun "Viesti lähetetty" ja tyhjentäisi kentät.
Olisikos mahdollista antaa yhdelle formille kaksi tehtävää?
Mod. lisäsi kooditagit
Eipä taida tuollaisella formilla lähteä yhtäkään sähköpostiviestiä. :D
Metabolix, toi ehkä näyttää hassulta, mutta toimii :D
Ei, ei todellakaan toimi kuin satunnaisissa tapauksissa. Lähetä-nappulan klikkaaminen vastaa mailto-linkin klikkaamista, ja tästähän ei mitään postia lähde vaan enintään aukeaa postiohjelma — jos edes selain tietää, mitä avata. Minulla siitä aukeaa vain valikko, joka tarjoaa Thunderbirdia ja paria muuta ohjelmaa, joista mikään ei sattumoisin osu oikeaan, koska käytän normaalisti webmailia.
Todellista postinlähetystä voit katsoa PHP-oppaasta, joka samalla myös vastaa esittämiisi kysymyksiin.
Tuo edellyttää toimiakseen, että käyttäjällä on (oletus)sähköpostiohjelma asennettuna/konfiguroituna. Itsellä ei ole ikinä ollut kotikoneella sähköpostiohjelmaa konffattuna, koska käytän mielummin webmaileja.
E: hidas.
Joo, juu siltä se näyttää.. En älynnyt tota, koska koneeni osaa käyttää sähköpostiohjelmaa automaattisesti.
E: Ei näytä toimivan tuo toinenkaan :o
Rocceri kirjoitti:
E: Ei näytä toimivan tuo toinenkaan :o
Se edellyttää tietenkin toimivaa sähköpostipalvelinta ja PHP-skriptille oikeutta lähettää sähköpostia. Omalla koneellasi se siis ei toimi, jos et ole postipalvelinta pystyttänyt, ja aivan halvat palveluntarjoajatkaan eivät varmasti anna tuota mahdollisuutta.
Helpoin vaihtoehto on tallentaa "postit" vain tiedostoon ja lukea ne sieltä. Tietenkin voit myös vain antaa sähköpostiosoitteesi, kyllä halukkaat osaavat itsekin siihen kirjoittaa ja myös turhia kommentteja tulee vähemmän. Kolmas mahdollisuus on kirjoittaa PHP-skripti, joka yhdistää tunnuksillasi johonkin ulkoiseen postipalvelimeen tai vaikka Gmailiin, mutta tämä on jo paljon hankalampaa, joten itse en ainakaan vaivautuisi.
:s Eikös näitä toimintoja ole mahdollista saada asennettua omalle koneelle?
Tietenkin voit asentaa sähköpostipalvelimen, tarkemmin siis SMTP-palvelimen. Itse käytän Exim-nimistä palvelinohjelmaa, jonka olen asettanut välittämään ulkomaailmaan lähtevät viestit eteenpäin palveluntarjoajani postipalvelimelle.
Tämän voi ladata ilmaiseksi?
Mutta, jos käyttää ohjelmaa ilman tuota jälkimmäistä (...jonka olen asettanut välittämään ulkomaailmaan lähtevät viestit eteenpäin palveluntarjoajani postipalvelimelle.), lähteekö posti esimerkiksi tunnus@ip.osoite tai jotain vastaavaa? En oikein usko itsekkään tuohon lauseeseen, koska eihän ole sähköpostiosoitetta ilman päätettä (?).
Itellä on käytössä msmtp. Simppeli konffia ja toimii ku junan vessa.
Blaze kirjoitti:
Itellä on käytössä msmtp. Simppeli konffia ja toimii ku junan vessa.
Osoite on muotoa? Sähköposti siis. (Muuten, onko käytössäsi myös webdomain ip'lle?)
Metabolix, Blaze:
Miten te käytätte tätä "SMTP" palvelinta? Suomen lait kuulemma kieltävät sähköpostivalvelimen pitämisen kotikoneella.
Rocceri kirjoitti:
Metabolix, Blaze:
Miten te käytätte tätä "SMTP" palvelinta? Suomen lait kuulemma kieltävät sähköpostivalvelimen pitämisen kotikoneella.
Löytyykö tälle jotain ihan perusteluitakin?
Rocceri kirjoitti:
Suomen lait kuulemma kieltävät sähköpostivalvelimen pitämisen kotikoneella.
Ei kai mikään laki tuollaista kiellä?
Tieto ei ole multa lähtöisin... Älkää tänne kattoko :s
Mutta, jos on ihan mahdollista kotiserverille oma sähköpostipalvelin, niin kertokaa ihmeessä miten laitetaan, mikä laitetaa jne..? :s
jmp kirjoitti:
Ei kai mikään laki tuollaista kiellä?
Itse asiassa viestintäviraston määräys 11/2004 kielsi sähköpostin välittämisen suoraan loppukäyttäjien koneille. Ko määräys on kuitenkin kumottu http://www.ficora.fi/attachments/suomiry/
En tiedä mihin operaattorit nykyään perustaa tuon portin 25 eston, mutta niin kauan kuin se ei toimi, niin palvelinta voi toki pitää, mutta se ei toimi.
Sähköpostipalvelimen varsinainen ongelma on, että palveluntarjoajat estävät TCP-yhteydet kotiliittymiin porttiin 25, johon SMTP-yhteydet otetaan. Tämä siis estää oman postin vastaanottamisen ulkomaailmasta suoraan koneelle. Kuitekin oman kotiverkon sisällä postia voi lähetellä itselleen, ja myös ulkomaailmaan lähetys onnistuu.
SMTP on siis nimenomaan postin lähetykseen ja välittämiseen käytettävä protokolla. Jos posti on menossa osoitteeseen X@jotain.fi, lähettäjän sähköpostiohjelma toimittaa viestin jollekin SMTP-palvelimelle, joka lähettää sen seuraavalle jne, kunnes viesti päätyy palvelimelle jotain.fi. Tämä palvelin tallentaa viestin käyttäjän X viestilaatikkoon, josta X voi sen lukea. Lukemiseen voidaan käyttää esimerkiksi IMAPia, joka taas sallii käyttäjän X yhdistää palvelimeen jotain.fi ja lukea tällä palvelimella olevan postilaatikkonsa sisältöä.
PHP:n mail
-funktiota varten tarvitset jonkin SMTP-palvelinohjelman. On sinun asiasi, minkä voit ja osaat omaan käyttöjärjestelmääsi asentaa. Luultavasti valtaosa meistä SMTP-palvelimen omistajista käyttää Linuxia, joten erityisiä Windows-ohjeita ei ainakaan minulta heru. Palvelinohjelmaa voit valita Wikipedian listasta.
Monilla operaattoreilla ei muuten onnistu ulospäinkään lähetys muuta kuin operaattorin oman palvaimen kautta. Toki omalle koneelle laitettavaan SMTP-palvelimeen ei ole konsti eikä mikään konffata se lähettämään viestit operaattorin palvelimelle, eikä suoraan vastaanottajalle.
Grez: Viitsisitkö vielä valottaa, mikä kohta tässä määräyksessä velvoittaa tukkimaan portin? Ainakaan minusta porttiin 25 tulevia yhteyksiä ei voi pitää väistämättä haitallisena, ja nähdäkseni tuossa silloin päinvastoin sanotaan, että asiakkaan viestintää ei pidä häiritä tarpeettomasti.
Kuten sanoin, en tiedä mihin ne nykyään perustuvat. Tällaista löysin tuota vanhasta 11/2004 -määräyksestä, mutta tuo uusi on kumonnut sen, eikä siinä mielestäni ole enää moisia määräyksiä. Operaattoreilta voisi siis mielestäni kysyä perusteita tuohon blokkaamiseen.
Grez kirjoitti:
Kuten sanoin, en tiedä mihin ne nykyään perustuvat.
Et sanonut vielä silloin, kun rupesin vastaamaan. :) Mutta joo, täytyypä taas ruveta porukalla lähettelemään tästä huomautuksia operaattoreille, kyllä nämä aina muutamassa vuodessa menevät läpi. Elisan FAQ:ssahan lukee jo, että kaapelimodeemiliittymässä saa pitää palvelinta yksityiseen käyttöön ja että kuluttajalaajakaistaa ei ole tarkoitettu palvelimelle. :P
Jep, editoin tuota alkuperäistä viestiäni kun huomasin että tuo uusi määräys muutti tilannetta. Löysin muuten arkistoista sen vanhan määräyksen. Siinäkään ei itse määräyksessä määritelty noita estoja, vaan suosituksissa määräyksen soveltamisesta (kappaleet 5 ja 6).
Uuden määräyksen perusteluissa ja suosituksissa en moisia enää huomannut.
Metabolix kirjoitti:
Luultavasti valtaosa meistä SMTP-palvelimen omistajista käyttää Linuxia, joten erityisiä Windows-ohjeita ei ainakaan minulta heru
Noh, on mulla koneella Linuxin käyttöjärjestelmäkin. Ubuntu 8.10
Mutta, jos asennan koneeseeni esimerkiksi tuon sinun käyttämäsi ohjelman Eximin, PHP'n mail funktion pitäisi toimia?
Niin ja, asennus apua Eximiin? Otin tuosta 4.69 version..
Saisinko kysyä, miksi ihmeessä nyt ollaan vääntämässä SMTP-palvelinta pystyyn? Sehän on loppupeleissä täysin tarpeetonta tuon lomakkeen kannalta. Omalla koneella olevan PHP:n voi helposti säätää käyttämään oikeaa SMTP-palvelinta, mutta sijaitsevatko nuo sivutkaan omalla koneella?
HTML-sivulla on lomake.
Lomake viittaa PHP-sivuun.
PHP-sivu lähettää sähköpostin ja näyttää kiitosviestin.
Merri kirjoitti:
Omalla koneella olevan PHP:n voi helposti säätää käyttämään oikeaa SMTP-palvelinta — —
Ei taida kuitenkaan onnistua, jos ainoa toimiva SMTP-palvelin sattuu vaatimaan salasanan?
Mutta minustakin kysyjän kannattaisi nyt todella miettiä, mitä kannattaa tehdä. Raskaan postipalvelimen pystytys vain PHP:tä varten ei ole oikea ratkaisumalli, jos helpommallakin pääsee. Luultavasti Blazen ehdottama msmtp on parempi vaihtoehto, ellet saa PHP:tä säädettyä juttelemaan suoraan ulkoisen palvelimen kanssa. Jos aiot asentaa jotain Ubuntuun, tee se paketinhallinnan kautta äläkä käsin. Tarvitsemasi paketit kyllä varmasti löytyvät.
Eximin asetukset voit etsiä netistä, smarthost Exim on hyvä hakusana. Muistaakseni myös Ubuntun asetusohjelmalla asetukset osuivat kohdalleen (komentorivillä dpkg-reconfigure exim
tai mikä exim-paketti nimeltään onkaan).
msmtp:tä varten on asetusesimerkki ainakin projektin kotisivulla, ja vastaava esimerkki voi tulla myös paketin mukana Ubuntun paketinhallinnasta.
Eka tulos Googlesta hakusanoin PHP SMTP password
Muissakin softissa on omia mailinlähetysfunktioita, jotka mahdollistavat salasanallisen SMTP:n käytön, ihan ikivanhasta phpBB2:sta lähtien.
Ei nyt suoranaisesti liity aiheeseen, mutta Gmailin saa asetettua toimimaan mailto-linkkien kanssa. Se avaa uuden selain-ikkunan jossa on nuo annetut tiedot valmiiksi täytettynä. Samaisella ohjelmalla saa myös uudet sähköpostit näkymään oikeassa alakulmassa olevan ikkunan avulla (niinkuin mesessä saa viestin).
Googleen gmail notifier.
Merrin ekaan viestiin: Kyllä, nämä kaikki ovat omalla koneella
--
Mutta, miten siis saan helpointen PHP'n mail funktion toimimaan koneellani??
Ja tohon edelliseen viestiini lisäys:
Tarvitsisin vastauksen mahdollisimman pian :<
Olisikos jollain keinoa saada Mail funktio toimimaan?
Mikä tässä nyt on epäselvää?
Jos haluat väkisin käyttää PHP:n vakio mail-funktiota, niin laita omalle koneelle postipalvelin, jonka konffaat vastaanottamaan mailia vain omalta koneelta ja välittämään sen operaattorin sähköpostipalvelimelle.
Toinen keino olisi sitten esim. tuon Merrin viimeisimmän vastauksen mukainen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.