Terve,
olen yrittänyt nyt useita useita tunteja saada sähköposteja pyöräytettyä smtp serverin kauttaa "maailmalle". Olisi tarkoitus käyttää soneran (mail.inet.fi) smtp serveriä mutta en saa ko. mail hommaa toimimaan php:n "sisäisellä" mail functiolla enkä PEAR mail functiolla enkä myöskään sendmaileilla.
Käytän nyt XAMP:pia.
Onko kenelläkään kokemusta tästä. Aikaisemmin tämä toimi ja muistaakseni silloin en käyttänyt XAMPPIA vaan minulla oli ainoastaan APache ja siihen sidoin käsin kaiken tarvitsemani mutta siitä on niin paljon aikaa ettei voi muistaa enkä enää löydä sitä toimivaa php.ini fileä jolla sen aikasiemmin sain toimimaan nimenomaan tuon mail.inet.fi:n kautta.
Eli jos jollain on tällähetkellä joko mail.inet.fi smtp servin kautta toimiva sähköpostilähetys php sivun kautta tai sitte smtp.gmail.com niin otan mielelläni apuja vastaan.
pZq
Ei pitäisi vaatia mitään ihmeellistä, vaan oikean palvelimen valitsemisen pitäisi riittää, kunhan on Soneran nettiyhteys. Tosin omassa systeemissäni PHP lähettää postit localhostille ja Exim (paikallinen SMTP-palvelin) välittää ne mail.inet.fi:hin.
Xampp on ilmeisesti Windowsilla?
Etsi php.inistä [mail function] ja laita seuraava
[mail function] ; For Win32 only. SMTP = mail.inet.fi
juu, ei nuo perusasetukset jeesaa.
Heräsi kymysys, pitääkö minun siis olla myös fyysisesti muka soneran tarjoaman ip:n alla jotta toi mail.inet.fi toimii. Enkä tiedä onko laajakaista soneralta vai muualta tarjottu palvelu.
Pitää tyypätä tätä kotona jos toimisi.
Kyllä, pitää fyysisesti olla Soneran tarjoaman IP:n alla. Muuten on todennäköistä, että et saa yhteyttä koko palvelimeen tai palvelin hylkää viestit roskapostina. Tietenkin toinen vaihtoehto on käyttää sitä postipalvelinta, joka liittymääsi kuuluu.
Tavallisen kotilaajakaistan tarjoaja selviää yleensä näin:
<?php $s = file_get_contents("http://checkip.dy.fi/"); $s = preg_replace('/.*?(\\d+\\.\\d+\\.\\d+\\.\\d+).*/s', '$1', $s); $s = gethostbyaddr($s); echo $s;
Ja kolmas vaihtoehto on käyttää Googlen postipalvelimia.
Eikö Googlen postipalvelin vaadi kirjautumisen ja aseta väkisin lähettäjäksi Gmail-tiliin liitetyn osoitteen?
Joo on minulla gmail osoitekkin johon viittasin alkukysymyksessä. Ongelma on vaan se etten oikein löydä mistään luotettavaa tietoa siitä miten google smtp palvelinta käytetään.
palvelinhan on ainakin ilmeisesti: smtp.gmail.com
portti on joko 465 tai 587 ?!
omat salasanat ja pw tiedän mutta en ihan ola 100% varma miten ne tulisi selventää
php.ini:ssä. Jostain luin että ne voi määrittää php.iniin =>
auth_username = username
auth_password = password
ja jossan taas:
username = username
password = password
Mutta en ole saanut toimimaan...
joo himasta onnistu näin:
<?php ini_set("SMTP","mail.inet.fi"); ini_set("sendmail_from","xxx@pp.inet.fi"); if(mail('xxx@superxxx.fi', 'My Subject', 'Terve menoo!')) { echo "Onnistui!"; } else echo "ei nyt onnistunut! prkl"; ?>
Eli tossa kaikki mitä tarvittiin koko php tiedostoon jotta maili lähti.. Jess, tästä se lähtee, mut nyt pitäs viel tyyppää toi gmail, että toimisko se.
Noniin. gmail promptaa tällaisen:
Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. q16sm22484824fae.6 in C:\HTTP\emailer.php on line 10 ei nyt onnistunut! prkl
tällä php koodilla:
ini_set("SMTP","smtp.gmail.com"); ini_set("smtp_port","587"); ini_set("smtp_ssl", "1"); ini_set("smtp_user","xxx@gmail.com"); ini_set("smtp_password","xxxxx"); ini_set("sendmail_from","xxxx@gmail.com"); if(mail('xxx@yyy.fi', 'My Subject', 'Terve menoo!')) { echo "Onnistui!"; } else echo "ei nyt onnistunut! prkl"; ?>
Nopeemmin olisit etsinyt ratkaisun hakukoneella itse ja sitten postannut helposti löytyneen ratkaisun tänne.
http://byitcurious.blogspot.com/2009/04/solving-must-issue-starttls-command.html:
Xamppia käytettäessä löytyy fake sendmail jo valmiiksi. Asenna siihen päälle sendmail-SSL ja konffaa sendmail.ini seuraavanlaisesti
sendmail.ini
[sendmail] smtp_server=smtp.gmail.com smtp_port=25 error_logfile=error.log debug_logfile=debug.log auth_username=<username> auth_password=<password> force_sender=<e-mail username>@gmail.com
Tuo on aivan järkyttävän hidas tuo sendmail...
Orkkis mail() funktio mail.inet.fi:n kautta on nopea ihan portilla 25 mutta tämä sendmail on todella hidas. Tyyliin 15 sekunttia menee että viesti lähtee.
smtp_server=smtp.gmail.com smtp_port=587 smtp_ssl=auto auth_username=nimimerkki (eli ainoastaan tuo nimimerkki ennen @ merkkiä) auth_password=xxxxxxxx force_sender=nimimerkki@gmail.com
Nuo riittää että toimii, mutta on pirun hidas.
niin siis nuo tulee sendmail.ini tiedostoon
php.ini:Stä blokataan kaikki komennot liittyen mail funktioon paitsi tietysti sendmail_path pitää osoittaa.
sitten vaan .php tiedostoon:
Mitä jos nyt kokeilisit vielä palveluntarjoajan postipalvelinta ihan perinteisellä menetelmällä?
haha mozilla thunderbirdiä vai outluukkuako tarkoitat...
Toi s.postin autolähteys on tulossa omatekemääni foorumiin, jossa topicin aloittajaa häiriköidään sähköpostilla aina kun joku vastaa hänen aloittamaansa aiheeseen.
En nyt tiedä mitä oikein tarkoitit tuolla perinteisellä mentelmällä.
Tuo 25 portilla mail.inet.fi smtp serveri ei toimi siis siellä missä olis kiva että se toimii.
Pitää varmaan virittää joku oma SMTP serveri...
Perinteisellä menetelmällä = ilman sendmailia. Kerroin jo todennäköisen syyn, miksi mail.inet.fi ei toimi, ja kerroin myös, miten voit yrittää selvittää liittymän tarjoajan. Jos rDNS pettää, WHOIS auttaa. Kai se liittymän tarjoaja pitäisi muutenkin jonkun tietää, jos liittymästä maksaa.
Ja kyllä, jos jonkin palvelimen pitäisi mielestäsi toimia mutta et saa sitä PHP:llä toimimaan, on viisasta kokeilla myös vaikka sitten graafisella sähköpostiohjelmalla, jos et osaa muuta käyttää. Itse yleensä kokeilen ihan socatilla tms. komentoriviohjelmalla, kai nyt kuka tahansa osaa SMTP:n alkeet ulkoa. ;)
tottakai osaa ;)
Mun pitää huomenna tyyppää siellä missä homma pissi tota sun ehdotusta kun en tosiaan tiedä mikä sen paikan liittymä on.
Kiitos avuista.
Sinulle on tuossa yläpuolella kerrottu miten saat sen operaattorin selville. Palvelimen julkinen IP osoite kertoo samalla myös operaattorin.
Metabolix kirjoitti:
Perinteisellä menetelmällä = ilman sendmailia. Kerroin jo todennäköisen syyn, miksi mail.inet.fi ei toimi --
En pidä ollenkaan uskottavana, että Sonera blokkaisi sähköpostipalvelimensa muiden operaattoreiden liittymiltä. Pitäähän oma sähköpostinsa pystyä lukemaan - ja viesteihin vastaamaan - vaikka liikenteessä ollessa ilman jotain turhaa webmailia.
Jotkin operaattorit sallivat omilta liittymiltään SMTP:n käyttämisen ilman autentikointia, se on ehkä merkittävin ero tässä.
joo. Kyllä muilta palveluntarjoajilta pääseekin omaan sähköpostiin ja lähettelemään viestejä, mutta siinä tapauksessa tarvitaan autentikointi joka taas estää ton perus mail() funktion sillä se ilmeisesti tukee vain ei autentikoitua sähköpostilähetystä.
Sain nyt täälläkin osoitteessa missä ongelma oli, homman pelaamaan ihan tolla perus mail() funktiolla (eli ilman sendmailia) toimimaan kun löysin meidän oman smtp serverin kännykän sähköpostiasetuksista kun windowssissa niitä ei saanut kaivettua mistään (jotenkin pääsy estetty).
eli alkuperäinen ongelma ratkesi. Tarvitset vain oman joko palveluntarjoajan smtp osoitteen joka siinä verkossa luultavasti toimii ilman smtp:tä tai sitten jos olet yrityksen sisällä, selvitä heidän smtp osoite ja homma alkaa toimimaan.
Jos smtp palvelin toimii ilman autentikointia pystyt alla olevalla koodilla lähettää vaivatta viestiä maailmalle.
ini_set("SMTP","smtp.palveluntarjoaja.com"); ini_set("smtp_port","25"); ini_set("sendmail_from","palveluntarjoajan.osoite@palveluntarjoaja.com"); if (mail("$resultEmail", "Otsikko" , "Viesti")) $mailsent = 1; else $mailsent = 2;
Lisäksi täytyy php.ini:stä poistaa kaikki [mail function] alla oleva konffi sisältäen sendmail_path rivin joka myös kommentoidaan pois käytöstä.
Kiitos kaikista avuista. Varmaan jollain on apuja tästä keskustelua herättävästä aiheesta :P
The Alchemist kirjoitti:
En pidä ollenkaan uskottavana, että Sonera blokkaisi sähköpostipalvelimensa muiden operaattoreiden liittymiltä.
Täsmennyksenä, olen koko ajan puhunut tavallisesta, porttiin 25 kohdistuvasta, autentikoimattomasta SMTP-liikenteestä. Yhteydet porttiin 25 vieraille palvelimille on usein estetty jo oman operaattorin puolesta, ainakaan itse en pääse tästä vieraille palvelimille. Useimmat operaattorit tarjoavat kyllä SSL:ää käyttävän (portti 465) tai TLS:ää tukevan yhteyden (portti 587) ja joskus jopa suosittelevat salauksen käyttöä.
Portin vaihto ei kuitenkaan ratkaise ongelmaa. Esimerkiksi mail.inet.fi SSL-yhteydellä ilman käyttäjän tunnistusta ilmoittaa vieraista vastaanottajista näin: Relaying not allowed - please use SMTP AUTH. Luultavasti tulos olisi täsmälleen sama myös portissa 25, jos siihen pääsisi yhdistämään. Oman sähköpostin tunnusta ja salasanaa taas ei ole kiva tallentaa PHP:n asetuksiin tai PHP-skriptiin.
Mail.inet.fi smtp serveri portilla 25 ei herjannut kun laitoin sähköpostia gmail osoitteeseeni.
Mistä päästäänkin takaisin siihen ensimmäiseen asiaan: laitoitko postin Soneran liittymästä?
Miten se on nyt niin vaikea uskoa? :D Palvelin hyväksyy oman asiakkaan lähettämät postit automaattisesti, koska IP-osoite todistaa, että kyseessä on oma asiakas. Vieraasta IP:stä vaaditaan käyttäjänimi ja salasana, tai muuten saa laittaa postia vain saman operaattorin osoitteisiin. Tämä on aivan tyypillinen lähtökohta SMTP-palvelimen konfigurointiin.
Joo, tää on nyt täynnä väärinkäsityksiä tää loppu ja vähän ylipäätänsäkkin koko keskustelu.
Ymmärsin että tarkoitit etten voi 25 portilla soneran verkosta lähettää postia muiden palveluntarjoajien verkkoon ja siksi vastasin niinkuin vastasin...
CASE CLOSED ;D
Aihe on jo aika vanha, joten et voi enää vastata siihen.