Tervehdys!
Olemme asentaneet kaverimme kanssa SMF -foorumin sivuillemme. Ongelma tuli heti alkuun kun lisäämme jäsentä. Kaikissa muissa kokeilemissamme SMF:n foorumeissa rekisteröityminen lähettää sähköpostiin ilmoituksen/salasanan tai pyytää aktivointia sähköpostitse. Meillä foorumi ei teekään sellaista vaan tulee seuraavanlainen virheilmoitus:
2: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing
Tiedosto: E:\sivusto\forum\Sources\Subs-Post.php
Rivi: 377
Olemme jo yrittäneet etsiä ongelmaa useaan otteeseen, mutta emme sitä saa selville. Onko jollain samankaltaista ongelmaa? Mikä avuksi?
PS: Kaikkein huvittavinta on se, että ainoastaan sähköpostin lähettäminen on ongelma. Rekisteröityminen silti onnistuu ja käyttäjä pääsee käyttämään foorumia samantien (meillä ei vaadita siis aktivointia!).
PPS: Sori...ois varmaan pitänyt lisätä että meillä on siis oma palvelin pystyssä. Meillä on kaikki oikeudet mm. php.ini -tiedostoon, mutta emme ymmärrä mikä siellä on muka vialla...jne...
Osaako joku sanoa mitä pitää tehdä?!
Ongelma taitaa tosiaan olla mail-funktion toiminnassa - rekisteröinti tietenkin onnistuu, vaikka sähköposti ei lähtisikään matkaan. Virheilmoitus tarkoittaa sitä, että sähköpostin lähettäjää ei ole määritelty. Lähettäjän nimen ja osoitteenhan pystyy tekaisemaan itse, kun käyttää mail-funktiota.
Lähettäjän voi määrittää suoraan mail-funktiossa näin:
$lisä = "From: Aku Ankka <aku.ankka@ohjelmointiputka.net>"; mail($osoite, $otsikko, $viesti, $lisä);
Tuohon neljänteen parametriin voi siis laittaa kaikkia sähköpostiin liittyviä lisätietoja (lähettäjä, liitteet ym.).
Jos mail-funktiossa ei mainita lähettäjää, käytetään oletuslähettäjää, jonka taas pystyy määrittämään php.ini-tiedostossa. Jostain syystä palvelimenne ini-tiedostosta ilmeisesti puuttuu tämä tieto.
kiitos tuosta ja olen yrittänyt ratkaista sen kautta ongelmaa, mutta ei auta. PHP.ini tiedostossa on oletus osoiteeta ja niin edelleen mutta ei...olen myös kokeillut tuota ehdottamaasi aku ankka juttua, mut ei...ei niin ei...
tosin täytyy ottaa huomioon, että kyseessä on melko laaja keskustelufoorumi, joka sisältää melkoisen määrän koodia, joten tuo aku ankka -juttu ei toimi varmaankaan sen takia, että siellä on joku muu juttu joka sählää...
mutta kysyisin sellaista vielä, että tarviiko komento sendmail jotakin erikoista serveriltä...pitääkö tyyliin CGI -olla asennettuna jne...toimiiko sendmail mm. Windows -palvelimella...vai hä?
PS: entä SMTP -palvelin? mitä se tarvitsee?
Windows-PHP sisältää oman SMTP-klientin, joten erillistä sendmail-binääriä et tarvitse, kuten *nixillä.
php.inistä kun asettaa SMTP (sen arvoksi tulee ISP:si postipalvelimen osoite) ja sendmail_from, niin tuon pitäisi alkaa toimimaan.
Mitä teen kun yritän lähettää postia mail-funktiolla, niin lukee näin:
Failed to connect to mailserver at "localhost" port 25, verify
your "SMTP" and "smtp_port" setting in php.ini
Mitä SMTP:seen ja smtp_port:iin pitää laitta php.ini:ssä?
Palveluntarjoajan postipalvelimen osoite ja portti.
Entäs kun on oma kone servuna? Eli toisin sanoen oon ite palveluntarjoaja :P
Palveluntarjoaja on se, joka sulle myy nettiyhteyden (Sonera, Elisa...)
No nyt lukee:
SMTP server response: 550 Sender address is missing a domain in [tiedosto] on line 12
Ja nyt:
SMTP server response: 550 Sender address is invalid in [tiedosto] on line 12
Todennäköisesti palveluntarjoajan palvelin ei hyväksy postin lähettämistä muulla kuin xxxx@palveluntarjoajanmaili.com lähettäjällä. Kokeileppa pistää vaikka oma palveluntarjoajaltasi saamasi mailiosoite lähettäjäksi.
Ei toiminut palveluntarjoajan mailiosoitteela.
Laitoin
ini_set("sendmail_from",$_POST['sender']);
niin onnistui.
Aihe on jo aika vanha, joten et voi enää vastata siihen.