php-ből mail küldés

Készítettem egy regisztrációs formot. Várhatóan 1000 ember körül fog rá regisztrálni, úgy két hónap mulva lesz az esemény, amire regisztrálni lehet. Arra gondoltam, hogy aki regisztrál, annak emailben is meg kelljen erősíteni a regisztrációs szándékát. A mail() function elég egyszrű a PHP-ban, de azt szeretném kérdezni, hogyam állítsam be a levél header-jét
Arra gondoltan hogy egy html levelet küldök, amiben egy táblázat kerül, a kitöltött form alapján, valamint egy link amire kattintva erősíthetjük meg regisztrációs szándékunkat.

-Tehát a kérdésem: hogy állítsam be a levél headrejét
-Érdemes-e egyáltalán megerősítést kérni, vagy ennek tulképpen nincs is sok értelme
-jó ötlet e HTML levelet küldeni.
-vagy multipart levelet küldjek, és azt hogyan

Egy másik kérdés még ami érdekel, hogy ha egy függvényem egy sessionből veszi a paraméterét, akkor aggasztó e az hogy ezt a session értéket meg lehet változtatni, és ezáltal lehetővé tenni a támadónak, hogy egy másik személy adatait kérdezze le (gondolom a válasz az hogy igen, de mekkora ennek a kockázata. én úgy véltem hogy nagy, ezért nem is alkalmaztam ezt)

köszi

Hozzászólások

en igy szoktam


function send_mail ( $_receiver, $_subject, $_message, $_sender = "", $_sender_mail = ""  )
        {
    $header .= "Return-Path: <".$_sender_mail.">\r\n";
        $header .= "MIME-Version: 1.0";
        $header .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
        $header .= "Content-Transfer-Encoding: 8bit\r\n";
        $header .= "From: =?utf-8?B?".base64_encode($_sender)."?= <".$_sender_mail.">\r\n";
        $header .= "X-Sender: <".$_sender_mail.">\r\n";
        $header .= "X-Mailer: mailer\r\n";
        $header .= "X-Priority: 1\r\n";
        $_subject = ("=?utf-8?B?".base64_encode($_subject)."?=");
        mail( $_receiver, $_subject, $_message, $header );
        }

Ez csak privát vélemény, de ha nem használsz olyan neveket, hogy $_SESSION['user_id'], vagyis olyat, ami könnyen kitalálható, (tehát pl. a $_SESSION['sdkj92kjds9_id_ekjreie'] megfelelő :- ) ), és a kódot sem adod ki a kezedből, akkor nem túl könnyen lehet kihasználni. Ebből gondolom a másodikat a nehezebb betartani, pl. elég egy elírt .htaccess file, és máris olvasható a kód.. .

hogy állítsam be a levél headrejét

Ugy, hogy oda csak ellenorzott adat kerulhessen be, olyan meg veletlenul se, ami cca. 200 email cimer tartalmaz.

Érdemes-e egyáltalán megerősítést kérni,

Mindenkeppen, egyreszt kiveded vele a viccelodoket, masreszt igy csak ervenyes es elo email cimed lesznek.

jó ötlet e HTML levelet küldeni.

Ha muszaj....

vagy multipart levelet küldjek,

Illik, hogy a levelnek legyen text/plain resze is. A hogyanhoz nezz meg egy ilyen level forrasat, es azt utanozd le. Egy tanacs: szoveges levelet ne base64 kodolj - igy a spammerek leveleznek...

ASK Me No Questions, I'll Tell You No Lies

En ezt ugy szoktam megoldani, hogy egyreszt az ekezetekkel ne legyen gond ezert UTF-8 a level meg a subject is. Kb. az alabbi modon oldottam meg:
mail ("cim@ze.tt, "=?UTF-8?B?" . base64_encode("ide jon a subject akar ekezetekkel") . "?=", "email tartalma szinten utf8", "From: Felado [el@a.do]\r\nReply-to: Felado [fel@a.do]\r\nContent-Type: TEXT/PLAIN; charset=UTF-8\r\nMIME-Version: 1.0"); // [] == <> termeszetesen, csak nem jelenitette meg ha ugy irtam.
Emellett en korbewrappeltem a mail fuggvenyemet 1 masikkal ami archivalja adatbazisba a kimeno emaileket mindenfele parameterekkel (pl. remote_addr), hogy ha valami miatt esetleg spammelnek vele (ami amugy kizart de paranoid alkat vagyok), akkor konnyebben lehessen hibat keresni. Idokozben kiderult, hogy a hulye-user problemara is eleg sokszor jol jon az archivum... :)

+1

Én/mi is a phpmailer classt használjuk. Teljesen jó, könnyen használható, megoldható vele, hogy egyszerre kiküldi a HTML és a Plain text leveleket is. Ha nincs saját SMTP szervered, beállíthatod a szolgáltató SMTP szerverét is. Nem utolsó sorban a PHP alap mail() fgv-e könnyen a SPAM -merek "áldozata" lesz. A phpmailer segítségével ez is kiküszöbölhető (megmondom őszintén, túlnyomó részt mi ezért használjuk ezt). De most inkább nem írok többet, mert azt se tom merre vok fejjel,megittunk itten egy üveg whiskey-t, meg amúgy is lassan menni kell a dizsibe... :D

arra van-e jó megoldás, ha phpmailer-t használok, az üzenetet tárgyastul utf-8-ban szeretném kódolni, de van egy csv attachment-em, amit viszont iso-8859-2-ben? vagy ez esetben külön kódoljak mindent "kézzel"?
kösz ha tudtok segíteni.
ph