[ SmilieBG @ 10.12.2004. 08:47 ] @
Pozdrav svima!

Imam jedan 'izazov'.

Naime, pokusavam da posaljem mail u HTML formatu. U pitanju je jedna mala rucno pravljena mailing skripta koja vadi adrese iz baze i na jednu po jednu salje mail.

Ovo je deo koda koji odradjuje pripremu i slanje maila:

Code:

function SendMail($to,$subject,$body_mail)
{
    // First, let's prepare headers
    $headers = "From: ja <[email protected]>\r\n";
    $headers .= "Content-Type: text/html\r\n";
    $headers .= "charset=iso-8859-2";
    
    // Then, let's prepare the image to be sent as logo with each mail

    $body_mail = nl2br($body_mail);

    $body = "
    <html>
    <body>
    <img src = 'http://www.domen.com/images/baner.gif'>
    <br><BR>";

    // Mail footer (by first registration we do not send the link where people can disable their mail
    if($first_mail = 1)
    {
        $body_footer = "
        <br><br>
Primite srdacne pozdrave,<br>

        Informativna sluzba
        <br><hr>
        <font size = 2>Ukoliko se zelite odjaviti sa mailing liste, kliknite <a href = 'http://www.domen.com/mailing/odjava.php?mail=$to'>ovde</a></font>";
    }

    // Let's put all toghether now
    $body_complete = $body . $body_mail . $body_footer;
    $body_complete .=  "\n\r";

    // Mail is ready for sending now, so let's send it
    $send = mail($to,$subject,$body_complete,$headers);

    if(!$send)
    {
        return FALSE;
    }
    else
    {
        return TRUE;
    }
}


$to se vadi iz baze i u while statement se poziva SendMail. Body i subject su uvek isti u loop-u.

E, sada problem je sto mi ne prikazuje nasa latinicna slova kako treba. I ono najgore, sto sam sinoc ustanovio, u razlicitim mail clientima dobijam totalno razlicita slova :( Tako na primer Outlook Express prikazuje kvadratic umesto š i ž, dok ista slova u webmailu rade kako treba, ali ć i č onda ne valjaju i umesto kvadratica dobijam (mislim da je ASCII) kod za ta slova :S

Probao sam i sa UTF8 i sa drugim kodnim rasporedom (1250)... Medjutim ni jedan ne radi sasvim kako treba :(

POMOC :)))

Svi saveti su dobro dosli!

Poz,
Sale

PS. licno sam razmisljao da licno napravim neku vrstu filtera da rucno pripremim i zamenim ta slova, pre nego sto ih posaljem na mail...? Ali mi je prosto ne moguce da je to toliko komplikovano?!
[ pierre @ 10.12.2004. 11:51 ] @
probaj
Code:
$body = "
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; Charset=ISO-8859-2'>
<body>...


ako ne - onda imas i html entitete.
[ SmilieBG @ 10.12.2004. 12:44 ] @
Hm... probao i dobijam sledece 'znakove' u webmailu

š&#273;&#273;š&#269;&#263;&#263;

Idem da proverim kako bi to bilo u recimo eudori... (ne koristim outlook)...

Poz,
Sale
[ SmilieBG @ 12.12.2004. 12:14 ] @
Pierre, ono nije pomoglo da se problem resi, ali

primetio sam da sa tim code, mi u jednom mail clientu (webmail) prikazuje jedne znakove umesto nasih slova, a u drugom neke sasvim druge znakove...

Da li neko zna, koliko prikazivanje slova zavisi od mail clienta? I kako to resiti?

Pierre - na sta si mislio sa html entitetima?

Poz,
Sale
[ pierre @ 14.12.2004. 01:51 ] @
Entiteti - mislio sam ako saljes jedan tekst na vise adresa i ne radis to jako cesto, onda se mozda isplati da naprimer umesto s (sabac) stavis &#353; i pojavice se s (sabac) u html-u. Zapravo, mislim da su html entiteti &copy; &reg; &trade; &quot; &Alpha; i slicno, a ne secam se da li ovo sa brojevima bese ima neko drugo ime...

Imas spisak nasih slova na http://www.elitesecurity.org/tema/81491

(ako koristis Editplus na adresi http://www.editplus.com/html.html imas taj kliptekst fajl za nasa slova http://www.editplus.com/files/cir_and_lat.zip)
[ SmilieBG @ 15.12.2004. 16:59 ] @
Da, to mi treba, samo sto se uvek salje drugaciji cest i relativno cesto (nekad i par puta na dan), tako da manuelno nema sanse da ih menjam, jer ne saljem ja text.

Razmisljao sam da stavim hard coded da to menja, ali nemam referencu (kako da znam da li je sh i obicno s)...

Zna li ko, koliko od mail clienta zavisi izgled slova? Recimo, ja iz php-a i sa mail servera posaljem sve kako treba, medjutim onaj ko cita u recimo OE, nema podrsku za ta slova? Logicno je da mu nece prikazati kako treba, medjutim da li je to tako ili gresim?

Poz i hvala,
Sale
[ bunker @ 17.12.2004. 17:34 ] @
ja imam isti problem, koji planiram da resim veceras, samo da odem kucci. imas f-ju htmlentities(), kojoj kao argument dajes string koji treba promenit, ali otom. javiccu se sutra.

pisem zbog druge stvari, ja sam pocetnik u php-u, i trebalo bi da uskoro radim cirkularni mail. Nisam testirao, pa postavljam pitanje koliko dugo cekas da php posalje mail...

zasto ne ucitas sve usere, napravis BCC adrese (Blind Carbon Copy) u poruci i samo jednom posaljes. ostavis da se mail server pomuci oko slanja 1000 maila. Nadam se da php ima funkciju kojoj prosledjujes bbc, sa subjectom i body-em.
[ _owl_ @ 17.12.2004. 21:23 ] @
Sto se tice prikaza iz webmaila moras da obratis paznju da ako se tekst poruke prikazuje u nekom vec postojecem prozoru sam webmail moze da gura svoj enkoding (a ne onaj koji stoji u zaglavlju mail-a), posto jedna strana ne moze da ima vise enkodinga za njene razlicite delove. Za testiranje prikaza mail-a koristi neki mail klijent koji podrzava enkoding koji stoji u zaglavlju mail-a.
[ SmilieBG @ 18.12.2004. 01:16 ] @
Citat:
bunker: ja imam isti problem, koji planiram da resim veceras, samo da odem kucci. imas f-ju htmlentities(), kojoj kao argument dajes string koji treba promenit, ali otom. javiccu se sutra.

pisem zbog druge stvari, ja sam pocetnik u php-u, i trebalo bi da uskoro radim cirkularni mail. Nisam testirao, pa postavljam pitanje koliko dugo cekas da php posalje mail...

zasto ne ucitas sve usere, napravis BCC adrese (Blind Carbon Copy) u poruci i samo jednom posaljes. ostavis da se mail server pomuci oko slanja 1000 maila. Nadam se da php ima funkciju kojoj prosledjujes bbc, sa subjectom i body-em.


Ajde ako provalis nesto javi :) Ja sam se razboleo, pa nisam bio u stanju mnogo da sedim pored kompa, a jos manje da razmisljam :(

Sto se tice slanja jednog mail-a, mislim da to moze. Ako saljes HTML mail, onda samo pripremis $Bcc koji posle stavis u header... Mi nemamo vise od 200 korisnika, sto je nista za bilo koji mail server da posalje...

@_owl_ ce da probamo :)

Poz,
Sale
[ bunker @ 20.12.2004. 08:57 ] @
druze, nista nisam uradio sa slovima. cak ni sa nasom latinicom. kada koristim htmletities funkciju, on mi iskodira i slova. ubaci html entitete i za nasa slova i za cirilicu. ne znam, poludeccu
[ SmilieBG @ 21.12.2004. 00:15 ] @
Welcome to my world :)

Tacno znam kako se osecas. Ja sam sada bolje, bio bolestan pa cu da pokusam jos nesto :)

Ajde, ko prvi resi, ili ima neko ko je vec resio da nas oslobodi muka, neka napise ovde :)

Poz,
Sale
[ Mister Big Time @ 21.02.2005. 22:16 ] @
pogledajte ovde - http://www.elitesecurity.org/tema/2377

Ja tek planiram da se zanimam oko ovog "problema" :)

Smile jesi li upseo? Ako ti slova tako enkoduje onda ti ne valja charset, probaj da izdvojis na posebnu stranicu sa windows 1250 charset-om u header-u.
[ Mister Big Time @ 21.02.2005. 22:32 ] @
... lepo pise u php manual-u

http://www.php.net/function.mail


Citat:
Example 4. Sending HTML email

It is also possible to send HTML email with mail().



Code:
<?php
// multiple recipients
$to  = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
   <tr>
     <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
   </tr>
   <tr>
     <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
   </tr>
   <tr>
     <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
   </tr>
  </table>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?> 



A jos kaze i ovo:


Citat:
Note: If intending to send HTML or otherwise Complex mails, it is recommended to use the PEAR package PEAR::Mail. - http://pear.php.net/package/Mail




[ SmilieBG @ 22.02.2005. 17:44 ] @
Ma pazi sad: ispostavilo se da je ono prvo sasvim lepo radilo, samo sto ga svaki client (npr Outlook Express, Outlook, Eudora, webmail itd) drugacije citaju. Odnosno, treba sam client podesiti na tu kodnu stranu da bi sve lepo prikazao :)

Poz,
Sale
[ Mister Big Time @ 22.02.2005. 21:27 ] @
Eee zato ovo lepo radi :) Sam podesis odgovarajici charset i svaki klijent ga cita. Probao sam sa vise webmail-ova, i svi su uredno prepoznavali..
[ SmilieBG @ 25.02.2005. 14:05 ] @
Sto me dovodi do sledeceg: zar client nije dovoljno 'samostalan' i 'pametan' da iz headera mail-a procita o kojoj kodnoj strani se radi i to tako i interpretira?! :S