Kirjoittaja Aihe: mail()  (Luettu 3436 kertaa)

Randomtyyppi

  • Käyttäjä
  • Viestejä: 144
    • Profiili
    • http://iteliaspro.dy.fi/
mail()
« : 12.03.11 - klo:18.20 »
Miten saisin mail() funktion toimimaan tuossa on toinenkin aihe mutta minulla ei ole mitään muuta kuin perus php asennettu joten mitä pitäisi asentaa ja säätää?

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: mail()
« Vastaus #1 : 12.03.11 - klo:23.06 »
PHP:n mail() -funktio tarvitsee toimiakseen sendmailin. Sellainen löytyy esimerkiksi postfixistä. Jos palveluntarjoaja sallii viestien lähetykset ainoastaan palveluntarjoajan oman palvelimen kautta, mta on määriteltävä relayksi.

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: mail()
« Vastaus #2 : 13.03.11 - klo:06.45 »
PHP:n mail() -funktio tarvitsee toimiakseen sendmailin. Sellainen löytyy esimerkiksi postfixistä. Jos palveluntarjoaja sallii viestien lähetykset ainoastaan palveluntarjoajan oman palvelimen kautta, mta on määriteltävä relayksi.

Toinen melko toimiva ja helpposäätöinen MTA on exim4, ainakin kolumbuksen mailikone suostuu smarthostiksi nikottelematta, kun /etc/mailname on "oikein".

Randomtyyppi

  • Käyttäjä
  • Viestejä: 144
    • Profiili
    • http://iteliaspro.dy.fi/
Vs: mail()
« Vastaus #3 : 13.03.11 - klo:12.14 »
no testaan postfixiä

Randomtyyppi

  • Käyttäjä
  • Viestejä: 144
    • Profiili
    • http://iteliaspro.dy.fi/
Vs: mail()
« Vastaus #4 : 13.03.11 - klo:13.19 »
asensin postfixin ja laitoin järjestelmän postiosoitteeksi iteliaspro@posti.fi
mutta ei toimi käynnistin uudelleen apachen ja varmuuden vuoksi myös postfixin mutta kun yritän käyttää mail() funktiota niin ei se vieläkään lähetä ja vieläpä laitoin varmuuden vuoksi modeemin asetuksiin että koneeni on http palvelimen lisäksi smtp palvelin

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: mail()
« Vastaus #5 : 13.03.11 - klo:13.46 »
asensin postfixin ja laitoin järjestelmän postiosoitteeksi iteliaspro@posti.fi
mutta ei toimi käynnistin uudelleen apachen ja varmuuden vuoksi myös postfixin mutta kun yritän käyttää mail() funktiota niin ei se vieläkään lähetä ja vieläpä laitoin varmuuden vuoksi modeemin asetuksiin että koneeni on http palvelimen lisäksi smtp palvelin

Sinäkö edelleen uskot saavasi 'oman' smtp palvelimen toimimaan ilman isp:n myötävaikutusta?
Miksi et edes kokeile toistuvastiu ehdotettua smarthostia?

Randomtyyppi

  • Käyttäjä
  • Viestejä: 144
    • Profiili
    • http://iteliaspro.dy.fi/
Vs: mail()
« Vastaus #6 : 13.03.11 - klo:14.16 »
miten voin muutta postfixin asetuksia että se käyttää smarthostia ???

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: mail()
« Vastaus #7 : 13.03.11 - klo:15.07 »
miten voin muutta postfixin asetuksia että se käyttää smarthostia ???

Odotellaan sellaisia jotka ovat tuota käyttäneet.

On sellainen muistikuva että olisin kokeillut joskus - mutta sitten kuitenkin otin sen exim4:n vakikäyttöön. Syytä en muista. (Mutta luultavasti konffauksen helppous, laiska kun olen ;)

Edit:
Uteliaisuus voitti. toveri kuukelin vihje:
http://embraceubuntu.com/2005/09/07/setting-a-smarthost-in-postfix/

Voiko olla noin helppoa:
Edit /etc/postfix/main.cf, and add or edit this line:
relayhost = your.server.com
Followed by restarting the postfix service:
$sudo /etc/init.d/postfix restart

Ja tuo "your.server.com" tarkoittaa isp:si postikonetta, esimerkiksi elisan linjoilla se on
smtp.kolumbus.fi

Edit2:
Siis luulen, tuon tarkoittavan sitä isp:n konetta, kokeillut en ole.

« Viimeksi muokattu: 13.03.11 - klo:15.17 kirjoittanut jekku »

Randomtyyppi

  • Käyttäjä
  • Viestejä: 144
    • Profiili
    • http://iteliaspro.dy.fi/
Vs: mail()
« Vastaus #8 : 13.03.11 - klo:21.29 »
entäs mikä se your.server.com on soneralla?

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: mail()
« Vastaus #9 : 14.03.11 - klo:00.28 »
entäs mikä se your.server.com on soneralla?
mail.inet.fi?

Tha-Fox

  • Käyttäjä
  • Viestejä: 3315
  • Arch Linux && CentOS
    • Profiili
    • http://kettu.dy.fi
Vs: mail()
« Vastaus #10 : 16.03.11 - klo:01.14 »
Ja kyllä, smarthostiksi tulisi tuossa tapauksessa ISP:n postipalvelin. Muutamia palvelimia olen tehnyt smarthostilla käytännön pakosta.

odysseus

  • Vieras
Vs: mail()
« Vastaus #11 : 17.03.11 - klo:17.37 »
Jos ajat lokaalilta koneelta, niin mitä todennäköisimmin meilisi menee spammiroskiin toisessa päässä.
Aja mail() siis hostipalvelimella, niin saat meilit perille saakka.

Tässä kuitenkin standardin mukainen koodi:

Koodia: [Valitse]

if (!defined('PHP_EOL')) {
  if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
    define('PHP_EOL', "\r\n");
  elseif (strtoupper(substr(PHP_OS, 0, 3) == 'MAC'))
    define('PHP_EOL', "\r");
  else // Unix
    define('PHP_EOL', "\n");
}

/**
  Send email

  Note: Requires sendmail on server! See more detailes from PHP manual mail() function..
        If sendmail is returning true, it does not necessarily mean the email was correctly sent to the recipient!

  @param to - receiver address
  @param from - sender address
  @param subjct - subject of the message
  @param msg - message body
  @param ctype - content type (typically text/plain or text/html)
  @param charset - character set (typically utf-8 or iso-8859-1)

  @return - true if (assumed) success, false if error
*/
function send_email($to, $from, $subject, $msg, $ctype = 'text/plain', $charset = 'utf-8') {
  $header = "MIME-Version: 1.0" . PHP_EOL;
  $header .= "Content-type: $ctype; charset=$charset" . PHP_EOL; // If other than text/plain, please modify!
  $header .= "From: $from" . PHP_EOL;
  $header .= "Reply-To: $from" . PHP_EOL;
  $header .= "Return-Path: $from" . PHP_EOL;
  $header .= "Date: " . date("r") . PHP_EOL;
  $header .= "Message-ID: <" . microtime() . " TheSystem@". $_SERVER['SERVER_NAME'].">" . PHP_EOL;
  $header .= "X-Mailer: PHP v" . phpversion() . PHP_EOL;

  $msg .= PHP_EOL;
  $msg = wordwrap($msg, 70);

  return mail($to, $subject, $msg, $header);
}