Strict Standards: Redefining already defined constructor for class wpdb in /blog/wp-includes/wp-db.php on line 49

Deprecated: Assigning the return value of new by reference is deprecated in /blog/wp-includes/cache.php on line 35

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /blog/wp-includes/cache.php on line 400

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 553

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 674

Deprecated: Assigning the return value of new by reference is deprecated in /blog/wp-includes/query.php on line 15

Deprecated: Assigning the return value of new by reference is deprecated in /blog/wp-includes/theme.php on line 505

Strict Standards: Non-static method Advanced_Permalinks::get() should not be called statically in /blog/wp-content/plugins/advanced-permalinks/advanced-permalinks.php on line 825

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GoogleSitemapGeneratorLoader::Enable() should not be called statically in /blog/wp-includes/plugin.php on line 123

Warning: call_user_func_array() expects parameter 2 to be array, null given in /blog/wp-includes/plugin.php on line 123
[PHP] Klasa do wysyłania maila, wiadomości e-mail » Porady PHP » egrafik.pl
BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 7 | UU: 283

Strict Standards: Resource ID#250 used as offset, casting to integer (250) in /forum2/db/mysql4.php on line 223

Strict Standards: Resource ID#250 used as offset, casting to integer (250) in /forum2/db/mysql4.php on line 224
[PHP] Klasa do wysyłania maila, wiadomości e-mail
Porady PHP | 16 maj 2008 | Wizyt: 120349

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Deprecated: Function eregi() is deprecated in /blog/wp-content/plugins/tpbc.php on line 96

W tej poradzie dowiecie się jak stworzyć własną klasę do wysyłania wiadomości e-mail za pomocą PHP. Ważnym będzie aby zabezpieczyć się przed traktowaniem przez operatorów naszych wiadomości jako spam.

Krok 1.
W pierwszej kolejności stworzymy prostą klasę z podstawowymi danymi takimi jak np. temat, od, do itd. Będzie równiez potrzebna funkcja do wysyłania maila i generowania  w razie potrzeby błędu w wysyłaniu. Php’owska funkcja zdefiniowana jest w następujący sposób:

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )

Pierwsze 3 parametry określają kolejno "adresat", "temat wiadomości", "wiadomość". 4 parametr - additional_headers może zawierać takie informacje jak "nazwa nadawcy", "adres e-mail nadawcy", "adres zwrotny", "wersja MIME", "rodzaj treści, contentu", "kodowanie znaków" itp. Parametry te nie są wymagane, jednak w celu zabezpieczenia się przed oznaczeniem przez niektórych dostawców usług hostingowych naszego maila za spam - konieczne jest ich prawidłowe wypełnienie. 

Krok 2.
Teraz przejdźmy do praktycznego zapisania naszej klasy. Tworzymy zatem nową klasę, deklarujemy odpowiednie zmienne, parametry i funkcje. Kod powienien wyglądać tak. Do dalszych celów kod ten zapisać należy do pliku o nazwie  mailer.php. Posiadanie w osobnym pliku klas i funkcji dotyczących wysyłki umożliwi dołączanie go w każdym miejscu, innym pliku, gdzie będzie istniała potrzeba wysłania maila.

Kod: php

<?php
class MicroMailer{
    var $to         = "";
    var $subject    = "";
    var $message    = "";
    var $fromName   = "";
    var $fromEmail  = "";
    var $replyEmail = "";
    var $header     = "";
    var $type       = "text/plain";
    var $characterSet = "iso-8859-2";
   
   
    function send(){
    // tutaj funkcja z kroku 4
    }
   
    function createHeader(){
    // tutaj funkcja z kroku 3

    }
   
}
?>

Wszystkie zmienne prócz typu i kodowania zostały zapisane jako puste. Uwaga: Opisane w kroku 3 i 4 funkcje trzeba zapisać w ramach klasy MicroMailer - patrz - function send(){ } oraz function createHeader(){ }

Krok 3.
Teraz należy stworzyć dobrze sformatowany nagłówek (mail header string). Da się to zrobić za pomocą funkcji createHeader(). Ważne jest aby każdą linijkę zakańczać znakiem nowej linii (\r\n). Poniższy kod zapisujemy podobnie jak klasę w pliku mailer.php.

Kod: php

<?php
    function createHeader(){
        $from   = "From: $this->fromName <$this->fromEmail>\r\n";
        $replay = "Reply-To: $this->replyEmail\r\n";   
        $params = "MIME-Version: 1.0\r\n";
        $params .= "Content-type: $this->type; charset=$this->characterSet\r\n";
       
        $this->header = $from.$replay.$params;
        return $this->header;
    }
?>

Krok 4.
Nasza klasa jest już prawie gotowa. Teraz trzeba jeszcze zapisać kod wysyłający wiadomość. Zapisujemy funkcję wysyłającą wykorzystując stworzoną wcześniej funkcję createHeader() oraz zapisane na samym początku tej porady parametry. Nasza funkcja będzie sprawdzać czy wiadomość została wysłana - zwróci true lub w przeciwnym wypadku false. Poniższy kod również zapisujemy w pliku mailer.php.

Kod: php

<?php
    function send(){
        $this->createHeader();
        if (@mail($this->to,$this->subject,$this->message,$this->header)){
            return true;
        } else {
            return false;
        }
    }
?>

Krok 5.
W tym kroku napiszemy kawałek kodu html, sprawdzającego jak działa stworzona przez nas klasa. Tworzymy nowy plik np. index.php, a w nim formularz, w którym użytkownik może wpisać odpowiednie dane. Do naszego pliku z formularzem należy dołączyć również plik ze stworzoną wcześniej klasą poprzez poniższy zapis. Uwaga: oba pliki muszą znajdować się w tym samym katalogu aby poniższy zapis zadziałał prawidłowo.

Kod: php

<?php require_once("mailer.php"); ?>

Tworzymy formularz:

Kod: html4strict

      <form action="<?php echo $_SERVER[’PHP_SELF’]; ?>" method="post">
        <table>
          <tr><td>Email adresata:</td><td><input type="text" name="to" size="40" /></td></tr>
          <tr><td>Nazwa nadawcy:</td><td><input type="text" name="fromname" size="40" /></td></tr>
          <tr><td>Email nadawcy:</td><td><input type="text" name="fromemail" size="40" /></td></tr>
          <tr><td>Email zwrotny:</td><td><input type="text" name="replyemail" size="40" /></td></tr>
          <tr><td>Temat:</td><td><input type="text" name="subject" size="40" /></td></tr>
          <tr><td>Wiadomość:</td><td><textarea cols="30" rows="6" name="message"></textarea></td></tr>
          <tr><td colspan="2"><br/><input  type="submit" name="submitBtn" value="Wyślij" /></td></tr>
        </table>
      </form>

Oraz część do odbierania danych z formularza i wysyłania maila. W przypadku wysłania maila wyświetlony zostanie odpowiedni komunikat.

Kod: php

<?php
      $mailer = new MicroMailer();
       
      $mailer->to         = isset($_POST["to"]) ? $_POST["to"] : "";
      $mailer->fromName   = isset($_POST["fromname"]) ? $_POST["fromname"] : "";
      $mailer->fromEmail  = isset($_POST["fromemail"]) ? $_POST["fromemail"] : "";
      $mailer->replyEmail = isset($_POST["replyemail"]) ? $_POST["replyemail"] : "";
      $mailer->subject    = isset($_POST["subject"]) ? $_POST["subject"] : "";
      $mailer->message    = isset($_POST["message"]) ? $_POST["message"] : "";
if ($mailer->send()) {
        echo "Wiadomość wysłana!";
      } else {
        echo "Błąd podczas wysyłania wiadomości!";
      }
?>

W powyższym kodzie zbierane są wszystkie parametry z formularza o ile zostały wypełnione.

To wszystko :)

Autor: Adam Suchowski

nowe Porady PHP » zobacz wszystkie

WordPress database error: [Incorrect file format 'wp_comments']
SELECT * FROM wp_comments WHERE comment_post_ID = '979' AND comment_approved = '1' ORDER BY comment_date desc

Dodaj komentarz









 
| | | |
Copyright © 2006-2013 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker