adres firmy Ul. Ogniowa 4 lok. 34, Warszawa telefon do firmy

Strona główna > blog > piszemy prosty mechanizm mailingu cz 2

Piszemy prosty mechanizm mailingu cz.2

Jak do tej pory nasz skrypt wygląda tak:

<?

    function wysMail($do,$temat,$wiadomosc){
        $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=UTF-8\r\n";
        $headers .= "From: Strona \r\n";
        mail($do, $temat, $wiadomosc, $headers);
    }
    wysMail("z@mail.pl","Mail ze strony internetowej","hello world");
?>

Pora trochę rozbudować nasz skrypt mailingu. Najpierw dodamy formularz, żebyśmy mogli wpisać treść wiadomości.

<form method="post" enctype="multipart/form-data" onsubmit="if(!confirm('Wysyłamy?'))return false;">
Treść:
<textarea name="tresc" class="tab"></textarea><br/>
<input type="submit" name="slij" value="Wyślij"  class="tab"/>
</form>

W pierwszej linijce w onsubmit dodajemy mały skrypt w JavaScripcie, który przy wciśnięciu przycisku 'Wyślij' zapyta nas czy chcemy wysłać formularz.

Pora na dodanie kilku linijek, które odczytają plik z szablonem maila.

if($_POST['slij']!=""){
$template=file_get_contents("template.html");
$template=str_replace("<#TRESC#>",$_POST['tresc'],$template);
$i=1;
while(is_file($mail_plik="m".$i.".html")){
$i++;
}
$f = fopen($mail_plik, 'w');
fwrite($f, $template);
fclose($f);
echo "<script type='text/JavaScript'>window.location='index.php?m_id=$i&krok=1&n=0';</script>";
}

W pierwszej linijce skrypt sprawdza czy został wysłany poprawny formularz.
W następnej do zmiennej $template przypisywana jest treść całego pliku template.html.
W trzeciej ciąg znaków <#TRESC#>, z naszej zmiennej, jest zamieniany na wysłaną treść z formularza.
W następnych linijkach zapisujemy plik, który zawierać będzie naszego wygenerowanego maila.
Na koniec skrypt napisany w JavaScript`ie, przekieruje przeglądarkę na stronę wysyłającą.

Czas na wysyłanie.

if($_GET['krok']==1&&$_GET['n']!=""){
$tresc_maila=file_get_contents("m{$_GET['m_id']}.html");
$q="SELECT * FROM  newsletter";
Zapytanie($q);
$ile=IloscWynikow();
$q.=" LIMIT {$_GET['n']} , 50";
Zapytanie($q);
while($d=WynikDoTabeli()){
wysMail($d['mail_uzytkownika'],"Profesjonalne strony internetowe www.z15.pl",$tresc_maila);
}

 if($ile<$_GET['n']){
echo "<script type='text/JavaScript'>window.location='index.php?id=CRM&akcja=mailing&m_id={$_GET['m_id']}&krok=1&n=".($_GET['n']+50)."';</script></body></html>";
exit;
 }
}

Pierwsza linijka sprawdza czy zostaliśmy przekierowani z poprzedniego kroku i sprawdza czy podana jest liczba użytkowników przez parametr $_GET['n'].
W następnej odczytywana jest treść maila i zostaje przypisana do zmiennej $tresc_maila.W następnych linijkach zostaje wysłane zapytanie do bazy danych, ilu użytkowników mamy w bazie. Po czym zapytanie o pierwszych 50 użytkowników.
Po tych operacjach zaczyna się wysyłanie maili w pętli while. Gdy pętla while wyśle maile do 50 użytkowników wychodzi z pętli i gdy liczba wysłanych maili jest mniejsza niż liczba do wysłania przeglądarka zostaje przekierowana na stronę wysyłającą lecz ze zwiększoną liczbą liczbą użytkowników do których mail został wysłany $_GET['n'].

Zapytanie(),IloscWynikow() i WynikDoTabeli() to nie pomyłka, możemy przecież używać różnych baz danych.

Cały skrypt wygląda mniej więcej tak:

 

<?
function wysMail($do,$temat,$wiadomosc){
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: Strona\r\n";
mail($do, $temat, $wiadomosc, $headers);
}
if($_POST['slij']!=""){
$template=file_get_contents("template.html");
$template=str_replace("<#TRESC#>",$_POST['tresc'],$template);
$i=1;
while(is_file($mail_plik="m".$i.".html")){
$i++;
}
$f = fopen($mail_plik, 'w');
fwrite($f, $template);
fclose($f);
echo "<script type='text/JavaScript'>window.location='index.php?id=CRM&akcja=mailing&m_id=$i&krok=1&n=0';</script>";
}
if($_GET['krok']==1&&$_GET['n']!=""){
$tresc_maila=file_get_contents("m{$_GET['m_id']}.html");
$q="SELECT * FROM  newslettern WHERE deleted='F'";
Zapytanie($q);
$ile=IloscWynikow();
$q.=" LIMIT {$_GET['n']} , 50";
Zapytanie($q);
while($d=
WynikDoTabeli()){
wysMail($d['mail_uzytkownika'],"Profesjonalne strony internetowe www.z15.pl",$tresc_maila);
}
echo "<script type='text/JavaScript'>window.location='index.php?id=CRM&akcja=mailing&m_id={$_GET['m_id']}&krok=1&n=".($_GET['n']+50)."';</script></body></html>";
exit;
}
?>
<form method="post" enctype="multipart/form-data" onsubmit="if(!confirm('Wysyłamy?'))return false;">
Treść:
<textarea name="tresc" class="tab"></textarea><br/>
<input type="submit" name="slij" value="Wyślij"  class="tab"/>
</form>

Tagi:

strony www

,

www

,

internet

,

hubcrm

,

strony internetowe Bełchatów

,

strony internetowe

,

strona internetowanewsletter

,

mailing

,

mail

,

php

,

programowanie

Komentarze:
Ostatnie projekty
  • Strona internetowa kancelarii prawnej GFP LEGAL&TAX
    Strona internetowa kancelarii GFP LEGAL&TAX. Strona wykonana w technologiach jQuery, PHP, MySQL, HTML5, CSS3. ...
    więcej...
  • Strona internetowa firmy 3dsystem
    Strona internetowa firmy zajmującej się produkcją taśmy do budowy liter przestrzennych. Strona wykorzystuje przede wszystkim jQuery, dodatkowo PHP + MySQL, HTML5, CSS3....
    więcej...
  • Strona internetowa Zakładu Projektowo - Usługowego Budownictwa i Energetyki EL - JACK
    Strona internetowa bazująca na systemie Z15CMS, wykonana w technologiach HTML5, CSS3, PHP. ...
    więcej...
  • Strona reklamowa dla Ptak S.A.
    Strona reklamowa zachęcająca do zapisania się do neewslettera (http://z15.pl/wygrajmaraton/index.html) oraz strona opisująca całą akcje (http://z15.pl/wygrajmaratonend/ind...
    więcej...

O firmie

Jesteśmy dynamicznie rozwijającą się firmą ze świeżymi pomysłami. Tworzymy profesjonalne rozwiązania dedykowane dla firm. Nasze produkty są przyjazne użytkownikom i proste w obsłudze. Zapewniamy kompleksową obsługę w zakresie profesjonalnych stron internetowych, sklepów internetowych, systemów CRM etc.

Bądź na bieżąco

Newsletter

Imię Nazwisko:
Email:

Copyright © Z15group -

Profesjonalne strony www

,

systemy CRM

,

sklepy internetowe

,

aplikacja konkurs ofert

,

aplikacja reminder

,

systemy B2B

,

systemy B2C

,

Pozycjonowanie