Autor Zpráva
man28
Profil *
Zdravím.
Prosím, vie mi niekto poradiť? Posielam v PHP mail, ktorý ale na cieľovú adresu nedorazí.
V čom môže byť problém. Používam klasickú funckiu mail().
Napr.

$to = 'posta@host.sk';
$subject = 'Objednavka';
$mesg = $Msg;
$from = 'From: me@example.com\n';

if (mail($to, $subject, $mesg, $from))
{
...
}
else
{
...
}

Na webhostingovom serveri funkcia prebehne čisto, bez chybovej hlášky, avšak mail na adredu nedorazí.

A ak posielam tento skript z vlastného počítača, systém mi vyhlási toto:

Warning: mail(): SMTP server response: 550 5.7.1 Unable to relay for posta@host.sk
in c:\inetpub\wwwroot\priklad\index.php on line 477

Používam: Windows + IIS + PHP + MySQL

Poradí mi niekto? Dík.
jozob
Profil
man28
Webhoster môže mať vypnuté chybové hlásenia. Skús si ich zapnúť manuálne.
man28
Profil *
Vieš mi poradiť ako?
Dík.
krteczek
Profil
na začátek scriptu připiš
error_reporting(E_ALL);
bude vypisovat chybové hlášky i v případě že jsou na serveru vypnuté
krteczek
man28
Profil *
Vďaka.
Avšak pri posielaní mailu nevypisuje žiadnu chybovú hlášku. Mail odošle v poriadku, ale daný mail na adresu nepríde. Už som z toho celkom zúfalý.
Hugo
Profil
man28

A je na serveru povolené odesílaní mailů pomocí php? Zkus si udělat jednoduchý skript, kde bude jen funkce mail, pokud nedorazí mail ani tentokrát, tak bude pravděpodobně chyba jinde než ve skriptu.

Ještě může být problém v antispamu. Zkus trochu upravit hlavičku mailu (viz manuál).
man28
Profil *
OK. Vyskúšal som jednoduchý skript:

<?php
$to = 'sx32@host.sk';
$subject = 'List';
$mesg = "Ahoj!";
$from = 'From: me@example.com\n';

if (mail($to, $subject, $mesg, $from)) echo 'V poriadku';
else echo 'Chyba';
?>

Poslal som to zo servera Slovak Telecom, z jedného nemenovaného firemného servera a
poslal som to na adresy: HOST, POST a HOTMAIL. Všade vypísalo 'V poriadku'.

A... nič...

Matrix sa so mnou zahráva...
WanTo
Profil
Zkus mail poslat jinam než na host.sk
Hugo
Profil
man28

Tak se podívej do podmínek webhostingu jestli je vubec mail() povolený.
Marty
Profil
Hugo Pokud by tomu tak nebylo, tak by se mu vypsalo: 'Chyba'; ne? Nebo se pletu?
Hugo
Profil
Marty

IMHO nemusí, pokud je problém až na úrovni SMTP serveru (kdysi dávno jsem něco podobného řešil, ale teď nemůžu najít poznámky).
man28
Profil *
Webhosting na Slovak Telecom-e a na firemnom serveri je nad linuxom. Takže to asi nepomôže.
Aj tak, Hugo, za tvoje poznámky by som dal pol kráľovstva.

Skutočne nikto nemal takýto problém? Mám pocit, že 2 + 2 je 5.
jozob
Profil
man28
"Webhosting na Slovak Telecom-e a na firemnom serveri je nad linuxom. Takže to asi nepomôže."
Nechápem, čo s tým má operačný systém.

Najlepšie je využiť technickú podporu a slušne sa opýtať, či nie je zádrhel na strane serveru.
man28
Profil *
Myslel som tým problém na úrovni SMTP servera - ...Linux?!.

Myslíš, že má Slovak Telecom zádrhel na strane servera.
Asi sa skutočne skontaktujem s technickou podporou. Ale nemyslim si, že som jediný, kto posiela mail cez PHP z ich servera.

Aj tak dík.
jozob
Profil
man28
"Myslel som tým problém na úrovni SMTP servera - ...Linux?!"
Aký problém? SMTP server vznikol najskôr na UNIXových systémoch.

"Myslíš, že má Slovak Telecom zádrhel na strane servera"
Tak to netuším, ale je to najjednoduchšia možnosť, treba sa spýtať. Ak to nebude na strane serveru, budeš vediež, kde máš hľadať chybu. Ale určite by som volil iný hosting ako ST.
Anonymní
Profil *
Takže, nakoniec som vyčítal z kníh jednu záležitosť, ktorá mi pomohla.

Jednoduchým skriptom som si získal elektronickú adresu správcu webového servera.

<?php
$spravca = $_SERVER["SERVER_ADMIN"];
echo "Spravca servera je <B>$spravca</B>.<BR>\n";
?>

V mojom prípade je to: postmaster@stonline.sk

Takže:

$from = 'From: postmaster@stonline.sk';



Následne skript na odosielanie elektronickej pošty je:


$to = 'posta@post.sk';
$subject = 'Objednávka';
$msg = 'Sprava';
$from = 'From: postmaster@stonline.sk';

if (@mail($to, $subject, $msg, $from))
{
...
}
else
{
...
}


Želám, veľa zdaru a ďakujem všetkým, ktorí sa mi snažili pomôcť.
Toto téma je uzamčeno. Odpověď nelze zaslat.