Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Email & PHP

Sivun loppuun

epe07 [24.08.2014 11:57:37]

#

Hei!

Olisiko mitenkään mahdollista lähettää sähköpostia php scriptin kautta?
Tulisin tarvtisemaan sitä tilin varmistamiseen.

Minh Truong [24.08.2014 12:03:42]

#

PHP mail funktion avulla voit lähettää sähköpostia.

PHP: mail - Manual

Esimerkki

<?php
   mail('vastaanottaja@domain.com', "Viestin aihe", "Viesti");
?>

epe07 [26.08.2014 16:08:59]

#

mail('epe(et)epe07.eu', "jotain", "jotain");

Ei tule perille.

Mod. lisäsi kooditagit!

Metabolix [26.08.2014 16:18:40]

#

Tuleeko virheilmoituksia? Ovatko PHP:n sähköpostiasetukset oikeat?

Minh Truong [26.08.2014 16:28:14]

#

Pyöritätkö tätä webbipalvelinta omalla palvelimellasi? Muokkaa PHP.ini konffia:

  nano /etc/php5/apache2/php.ini

Ja sieltä tiedostosta:

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
 ; https://www.php.net/sendmail-path
 sendmail_path = "/usr/sbin/sendmail -t -i"

ja tietenkin webbipalvelimen uudelleenkäynnistys

Onko sinulla postfix/tai muu sähköpostipalvelu asennettu?

Lähde: http://eureka.ykyuen.info/2011/02/06/configure-postfixsendmail-for-php-mail-in-ubuntu/

Grez [26.08.2014 16:29:28]

#

oletko katsonut roskapostin? Ainakin omien kokemusten mukaan PHP:n mail-funktiolla lähetetyllä postilla on keskimääräistä suurempi todennäköisyys joutua roskapostiksi.

reca [14.09.2014 02:07:22]

#

Voisiko ongelma liittyä siihen, että komento

mail('epe(et)epe07.eu', "jotain", "jotain");

sisältää kahta erityyppistä lainausmerkkiä?

Itse suosittelen käyttämään esim. phpmaileria, koska mail-funktiolla lähetetyt viestit menevät käsittääkseni helpommin spämmiin jne.

Grez [14.09.2014 08:50:42]

#

reca kirjoitti:

Voisiko ongelma liittyä siihen, että komento sisältää kahta erityyppistä lainausmerkkiä?

Ei voi liittyä siihen. Miten itse näkisit, että se voisi vaikuttaa?

qwerty12302 [17.09.2014 14:10:37]

#

epe07 kirjoitti:

mail('epe(et)epe07.eu', "jotain", "jotain");

Ei tule perille.

Pitäisiköhän tuossa olla @-merkki (et) sijaan?

Minh Truong [18.09.2014 23:46:32]

#

Muista katsoa palvelimen loki

/var/log/mail.log

Metabolix [19.09.2014 18:40:48]

#

Minh Truong kirjoitti:

/var/log/mail.log

Tiesitkö, että lokitiedot eivät ole kaikilla samassa paikassa? Kysyjällä tuskin on edes omaa palvelinta, webhotellissa ei yleensä pääse postipalvelimen lokitietoihin.

Minh Truong [19.09.2014 22:24:33]

#

Metabolix kirjoitti:

Minh Truong kirjoitti:

/var/log/mail.log

Tiesitkö, että lokitiedot eivät ole kaikilla samassa paikassa? Kysyjällä tuskin on edes omaa palvelinta, webhotellissa ei yleensä pääse postipalvelimen lokitietoihin.

olet oikeassa..

jos on webbihotellissa, kysy palveluntarjoajalta apua

groovyb [20.09.2014 12:36:07]

#

SMTP 25 usein estetty web hotelleistä tänä päivänä, varsinkin ilmaisista.

Jos tämä on tapauksessasi, voit käyttää esim Mandrillia viestisi lähettämiseen.


SwiftMailer

<?php

include_once "swift_required.php";

$subject = 'Hello from Mandrill, PHP!';
$from = array('you@yourdomain.com' =>'Your Name');
$to = array(
 'recipient1@example.com'  => 'Recipient1 Name',
 'recipient2@example2.com' => 'Recipient2 Name'
);

$text = "Mandrill speaks plaintext";
$html = "<em>Mandrill speaks <strong>HTML</strong></em>";

$transport = Swift_SmtpTransport::newInstance('smtp.mandrillapp.com', 587);
$transport->setUsername('MANDRILL_USERNAME');
$transport->setPassword('MANDRILL_PASSWORD');
$swift = Swift_Mailer::newInstance($transport);

$message = new Swift_Message($subject);
$message->setFrom($from);
$message->setBody($html, 'text/html');
$message->setTo($to);
$message->addPart($text, 'text/plain');

if ($recipients = $swift->send($message, $failures))
{
 echo 'Message successfully sent!';
} else {
 echo "There was an error:\n";
 print_r($failures);
}

?>

Metabolix [20.09.2014 12:45:01]

#

groovyb kirjoitti:

SMTP 25 usein estetty web hotelleistä tänä päivänä, varsinkin ilmaisista.

Osa webhotelleista estää saman tien lähes kaikki muutkin portit ja sallii lähinnä HTTP(S):n ja FTP:n tavalliset portit. Yleensä webhotelleilla on kuitenkin oma SMTP-palvelin, jonka kautta voi lähettää viestejä ainakin webhotelliin kuuluvasta osoitteesta. Sähköpostin lähetys on niin yleisesti käytetty ominaisuus, että olisi aika hölmöä pitää webhotellia, jossa se ei toimi. Toki hotellien käyttäjäkunnasta suuri osa ei ymmärrä vaatia rahalleen kunnollista vastinetta vaan hyväksyy kaiken maailman tyhmyyksiä ja purkkaviritelmiä...

groovyb [20.09.2014 19:43:07]

#

eipä se oma smtp palvelin auta, jos palveluntarjoajan keskitetystä palomuurista on lähtevä portti 25 blokattu. Näin on tietääkseni esim Hostingerilla, oli sitten kyse vps:stä tai web hotellista. Ilmeisesti ilmaisia tai puoli-ilmaisia paketteja käytetään huomattavan paljon pelkän roskapostin lähettämiseen, joten on tehty periaateratkaisuja yleisellä tasolla. Mutta kuten Hostingerin tapauksessa, muita portteja on jätetty auki, kuten mandrillin käyttämä 587. Ilmeisesti se näin estää suurimman osan valmiista koodinpätkistä, jotka spämmiä lähettää. Tiedä sitten. Mutta vastaavia käytäntöjä taitanee monella palveluntarjoajalla olla, tämä oli esimerkki vain yhdestä ratkaisusta johon yksi palveluntarjoaja on päätynyt.

Rahalla saa ja hevosella pääsee: kun pistää vähän massia likoon, saa juuri sellaisen pannun mitä tarvitsee.

Metabolix [20.09.2014 19:53:24]

#

groovyb kirjoitti:

eipä se oma smtp palvelin auta,

Luitkohan nyt yhtään? Kirjoitin, että usein webhotellilla on oma SMTP-palvelin. Ei asiakkaalla vaan palveluntarjoajalla. Sellainen palvelin on webhotellista käytettäväksi tarkoitettu, ja luonnollisesti silloin myös liikenne sinne on sallittu. Palvelimelle voi päästä joskus esimerkiksi osoitteella localhost tai smtp.palveluntarjoaja.fi.

groovyb [20.09.2014 21:43:47]

#

viesti oli kirjoitettu yleisesti ketjuun, lähinnä jatkoksi edelliselle kirjoitukselleni. Koskien lähinnä Minh Truongin mainintaa postfixistä. Ja ylläolevassa tapauksessa pitäisi postfixiin konffata relay host, ja käyttää ulkoista smtp:tä.


Sivun alkuun

Vastaus

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

Tietoa sivustosta