Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Php:n kautta kirjoitettu sähköposti ei pelaa

Sivun loppuun

pzq [23.11.2011 11:47:33]

#

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

Metabolix [23.11.2011 12:13:19]

#

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.

Grez [23.11.2011 12:43:47]

#

Xampp on ilmeisesti Windowsilla?

Etsi php.inistä [mail function] ja laita seuraava

[mail function]
; For Win32 only.
SMTP = mail.inet.fi

pzq [23.11.2011 16:30:34]

#

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.

Metabolix [23.11.2011 16:40:41]

#

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;

tsuriga [23.11.2011 16:52:52]

#

Ja kolmas vaihtoehto on käyttää Googlen postipalvelimia.

Metabolix [23.11.2011 17:16:32]

#

Eikö Googlen postipalvelin vaadi kirjautumisen ja aseta väkisin lähettäjäksi Gmail-tiliin liitetyn osoitteen?

pzq [23.11.2011 17:44:08]

#

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...

pzq [23.11.2011 18:05:43]

#

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.

pzq [23.11.2011 18:32:55]

#

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";

?>

tsuriga [23.11.2011 20:22:02]

#

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

pzq [23.11.2011 22:07:22]

#

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.

pzq [23.11.2011 22:35:27]

#

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:

if(mail('xxx@yyy.fi', 'My Subject', 'Terve menoo!')) {
	echo "Onnistui!";
}
else
	echo "ei nyt onnistunut! prkl";

Metabolix [23.11.2011 22:51:49]

#

Mitä jos nyt kokeilisit vielä palveluntarjoajan postipalvelinta ihan perinteisellä menetelmällä?

pzq [23.11.2011 23:14:28]

#

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...

Metabolix [23.11.2011 23:26:35]

#

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. ;)

pzq [23.11.2011 23:36:51]

#

tottakai osaa ;)

Mun pitää huomenna tyyppää siellä missä homma pissi tota sun ehdotusta kun en tosiaan tiedä mikä sen paikan liittymä on.
Kiitos avuista.

Meitzi [23.11.2011 23:46:03]

#

Sinulle on tuossa yläpuolella kerrottu miten saat sen operaattorin selville. Palvelimen julkinen IP osoite kertoo samalla myös operaattorin.

The Alchemist [24.11.2011 07:27:15]

#

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ä.

pzq [24.11.2011 08:40:41]

#

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

Metabolix [24.11.2011 12:00:23]

#

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.

pzq [24.11.2011 13:57:45]

#

Mail.inet.fi smtp serveri portilla 25 ei herjannut kun laitoin sähköpostia gmail osoitteeseeni.

Metabolix [24.11.2011 14:23:15]

#

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.

pzq [24.11.2011 15:47:26]

#

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

qeijo [24.11.2011 16:48:25]

#

http://pear.php.net/package/Mail/redirected


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta