PHP Mail - A MEGOLDÁS
Sziasztok!
Sokat szívtam különböző fórumokról összeollózott header kódrészletekkel, de mindig sántított valahol a kiküldött levelem: pl karakterkódolás a tárgyban, vipmail-freemail-citromail probléma, stb.
Most elkészült a kód, ami 100%-ban működik mindenféle előbb említett trágya levelezővel is SMTP szerver és php_ini babrálás nélkül - legalábbis az eddigi tapasztalataim és 633 felhasználó szerint.
Tehát megosztom veletek a kódot, használjátok egészséggel:Ez egy hihetetlenül egyszerű kód, tudom, de ennek ellenére ha ebbe valami apró hiba csúszik, már borul az egész, mert nem lesz valid a kiküldött leveled és fenn fog akadni bizonyos szűrőkön. Én úgy használom, hogy van egy (A
Azt remélem mondanom sem kell, hogy a
Sok időt spóroltam volna magamnak, ha ezt a fenti kódot megtalálom és nem nekem kell összeizzadni. Remélem segítettem ezzel.
Ha valamivel kiegészítenétek a headert, írjátok meg az ötleteteket nyugodtan.
■ Sokat szívtam különböző fórumokról összeollózott header kódrészletekkel, de mindig sántított valahol a kiküldött levelem: pl karakterkódolás a tárgyban, vipmail-freemail-citromail probléma, stb.
Most elkészült a kód, ami 100%-ban működik mindenféle előbb említett trágya levelezővel is SMTP szerver és php_ini babrálás nélkül - legalábbis az eddigi tapasztalataim és 633 felhasználó szerint.
Tehát megosztom veletek a kódot, használjátok egészséggel:
function sendmail ($fromname, $frommail, $to, $subject, $message) {
//Feladó név és tárgy átkódolás
$fromname = '=?UTF-8?B?'.base64_encode($fromname).'?=';
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
//Header
$header = "Reply-To: " . $fromname . " <" . $frommail . ">" . "\r\n";
$header .= "Return-Path: " . $fromname . " <" . $frommail . ">" . "\r\n";
$header .= "From: " . $fromname . " <" . $frommail . ">" . "\r\n";
$header .= "MIME-Version: 1.0" . "\r\n";
$header .= "Content-type: text/html; charset=UTF-8" . "\r\n";
$header .= "Organization: ide írj valamit" . "\r\n";
mail($to, $subject, $message, $header);
};
sendmail.php
file, aminek összesen ennyi a tartalma, amit beillesztettem. Abban a php file-ban, amiben levelet akarok küldeni behívom a sendmail
-t, így:require_once ($_SERVER['DOCUMENT_ROOT'] . '/php/sendmail.php');
$_SERVER['DOCUMENT_ROOT']
tulajdonképpen a gyökérkönyvtáradba vezet, így onnan meg tudod adni a sendmail.php
elérését egyszerűen, így ha különböző mappában vannak a levélküldő php-id, akkor sem kell állandóan átírogatni az elérési útvonalat. Tehát require-once
, és onnantól sima funkcióként lefuttatod.)Azt remélem mondanom sem kell, hogy a
sendmail.php
-t és a funckiót futtató php-t is UTF-8-ban kell menteni.Sok időt spóroltam volna magamnak, ha ezt a fenti kódot megtalálom és nem nekem kell összeizzadni. Remélem segítettem ezzel.
Ha valamivel kiegészítenétek a headert, írjátok meg az ötleteteket nyugodtan.
Néhány észrevétel
-
$header .= "Organization: ide írj valamit" . "\r\n";
Ez viszont nagyon csúnya. Mit írjak oda?- Hamár fejléc, én hiányolom ezeket: "Cc:", "Bcc:", "Reply-To:", stb. (Csatolmány még esetleg).
- A
$message=wordwrap($message,70);
kihagyása elég súlyos hiba, vagy az űrlap html-ét is közölnöd kéne, de ez a fv. a jobb megoldás.- "...ha ezt a fenti kódot megtalálom..." kicsit bővebben benne van a php manual-ban.
- Több mail (pl. hírlevél) kiküldésére nem ez a fv. jó.
Hát ennyi. Remélem nem voltam túl lehangoló, szerintem kijavítva, kibővítve és csúnya szavak nélkül kezdőknek való cikk is lehetne belőle, sokat szokták kérdezni.