Přejít na obsah

PHP Mail Send

php send mail

  • Pokud chcete odpovědět, přihlaste se
2 odpovědí

#1
Riko

Riko

    Reálný Život

  • Uživatel
  • Příspěvků: 152

Steam Profile

  • R1K0 - In Game
    Counter-Strike: Global Offensive
    64,3 hrs last 2 weeks.
    Add Friend

     

Zdravím komunitu Pawna.cz.

 

Měl bych dotaz protože si fakt nevím rady, jak na to.

 

Na OS Linux s postfixem potřebuji odesílat maily. To funguje. Problém je ale někde jinde. 

Potřebuji vědět, proč mi tento kód neodesílá mail ve formátu HTML ale odesílá ho jako prostý text

    function sendmail($to,$subject,$message,$from = "info@realny-zivot.cz"){
        $predmet = mime_header_encode($subject);
        $autor = mime_header_encode("SA-MP Reálný Život");
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
        $headers .= 'Content-Transfer-Encoding: 8bit'. "\r\n";
        $headers .= 'From: '.$autor.' <'.$from.'>' . "\r\n";
        mail($to,$predmet,$message,$headers);
    }

Zde je chybějící $message, která se nachází v jiném souboru:

            $content .= "<html>
                          <body>
                            <h2>Registrace</h2>
                            Děkujeme za vaší registraci.<br />
                            Pro potvrzení a aktivaci vašeho účtu klikněte na následující odkaz:<br /><br />
                            <a href='".DEF_WEBURL."account_verify/$random_key' target='_blank'>".DEF_WEBURL."account_verify/$random_key</a><br /><br />
                            <h3>".DEF_SITENAME."</h3>
                            <h4>".DEF_WEB."</h4>
                          </body>
                         </html>";
            mail($_POST['v1'],"Registrace Reálný Život",$content,"From: info@realny-zivot.cz");

Tento email odesílá ve formátu HTML, proč tomu tak je? Díky.

<?php
$to = 'lachadamcz@gmail.com';

$subject = 'Website Change Reqest';

$headers = "From: Reálný Život <info@realny-zivot.cz>\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
$headers .= "CC: susan@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

$message = '<p><strong>This is strong text</strong> while this is not.</p>';


mail($to, $subject, $message, $headers);
php?>

Již funguje zapsáním kódu 

            $content .= "<html>
                          <body>
                            <h2>Registrace</h2>
                            Děkujeme za vaší registraci.<br />
                            Pro potvrzení a aktivaci vašeho účtu klikněte na následující odkaz:<br /><br />
                            <a href='".DEF_WEBURL."account_verify/$random_key' target='_blank'>".DEF_WEBURL."account_verify/$random_key</a><br /><br />
                            <h3>".DEF_SITENAME."</h3>
                            <h4>".DEF_WEB."</h4>
                          </body>
                         </html>";
            $headers = "From: Reálný Život <info@realny-zivot.cz>\r\n";
            $headers .= "MIME-Version: 1.0\r\n";
            $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
            mail($_POST['v1'],"Registrace Reálný Život",$content,$headers);
            redirect("?registered");

Sice nechápu, proč to dříve fungovalo a teď to nefunguje, ale budiž.

Díky.


  • 0


rzbanner.png


play.realny-zivot.cz:7777


#2
Doctor

Doctor

    Zázraky na počkání, nemožné do dvou dnů

  • Administrátor
  • Příspěvků: 3 993

Steam Profile


 

Umí tvůj klient zobrazovat html emaily? Nemáš to přepnuté ? Případně zkus nějakou knihovnu než jen plain funkci.


  • 0

Zaměstnání:

Axfone.cz - Programátor

 

Soukromě pracuji na:

Elite Dangerous ( Frontend , Backend )

 


#3
GaRGoyLeS

GaRGoyLeS

    I thought it was the end, but it was actually just the beginning

  • Ověřený uživatel
  • Příspěvků: 789
  •   

Máš vytvořenou vlastní funkci (sendmail):

    function sendmail($to,$subject,$message,$from = "info@realny-zivot.cz"){
        $predmet = mime_header_encode($subject);
        $autor = mime_header_encode("SA-MP Reálný Život");
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
        $headers .= 'Content-Transfer-Encoding: 8bit'. "\r\n";
        $headers .= 'From: '.$autor.' <'.$from.'>' . "\r\n";
        mail($to,$predmet,$message,$headers);
    }

ALE tvůj obsah, který máš v jinačím souboru odesíláš funkcí mail, kde do hlavičky uvádíš pouze "From: info@realny-zivot.cz". Žádné informace o tom co odesíláš.. to vše řeší ta tvá předvytvořená funkce, kterou nevědomky nepoužíváš...

            $content .= "<html>
                          <body>
                            <h2>Registrace</h2>
                            Děkujeme za vaší registraci.<br />
                            Pro potvrzení a aktivaci vašeho účtu klikněte na následující odkaz:<br /><br />
                            <a href='".DEF_WEBURL."account_verify/$random_key' target='_blank'>".DEF_WEBURL."account_verify/$random_key</a><br /><br />
                            <h3>".DEF_SITENAME."</h3>
                            <h4>".DEF_WEB."</h4>
                          </body>
                         </html>";
            sendmail($_POST['v1'],"Registrace Reálný Život",$content,"From: info@realny-zivot.cz"); //tady stačí změnit funkci mail na tvojí sendmail, samozřejmě ta funkce sendmail musí být includnutá v tom souboru ;)

Druhý kód ti funguje kvůli tomu, že máš správně zapsanou hlavičku, jelikož ji zapisuješ rovnou a ne přes svojí funkci (která by ji měla také správně, ale zapomněl jsi na ni :d ), takže se HTML zobrazuje korektně. 


Upraveno uživatelem GaRGoyLeS: 20 srpen 2017 - 19:29:39

  • 1





Také označeno jedním nebo více klíčovými slovy: Pomoc, php, send, mail

0 uživatelů si prohlíží toto fórum

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

© 2015 IPS, Inc.

Zajímat Vás mohou ještě aktuální zprávy. sleviště, slevy dnes Herbalife je skvělou cestou pro dobré zdraví. Je libo dětský web?