Active Server Pages,ActiveServerPages+,ASP,ASP+,aspx,VBScript,IIS,internet,intranet,programming,programowanie,XML,Extensible Markup Language,kurs,opis,HTML,Hypertext Markup Language,JScript,JavaScript,wyszukiwarka,znajdz,instrukcja,Stelmik,Stelmi,free,darmo,zadarmo,free,serwer,server,www,konta,PHP,perl,klient,uslugi,asp,sklep internetowy,sklepy internetowe,e-sklep,esklep,tworzenie stron internetowych,strony internetowe,strony www,tworzenie stron www,strony internetowe,web page,webpage,creating,Krzysztof Stelmach,Krzysztof,Stelmach,www.stelmach.info,www.asp.z.pl
 
Ledger Nano X - The secure hardware wallet
IP: 3.238.117.130 
 
 PHP / POCZTA ELEKTRONICZNA
Szukaj:  
Pon, 22.04.2024r.
KURSY » języki - serwer » PHP » Poczta elektroniczna
 

1. Funkcja mail()

Do wysyłania e-maili z poziomu PHP służy funkcja mail(), której definicja wygląda następująco:
bool mail(string do, string temat, string tresc_wiadomosci [, string dodatkowe_nagłówki])
Przykład:
<?php
   mail("adres@mail.pl", "Temat", "Witam, co słychać?");
?>
Jak widać na powyższym przykładzie funkcja posiada kilka argumentów (parametrów), tj.:
- adres e-mail odbiorcy (w przykładzie jest to adres@mail.pl)
- temat wiadomości (w przykładzie jest to Temat)
- treść wiadomości, chyba najważniejsza część maila (w przykładzie jest to: Witam, co słychać?)
Oprócz powyższych parametrów może wystąpić jeszcze jeden:
- parametr zawierający dodatkowe nagłówki, którego opis znajduje się poniżej
Jeśli zajdzie potrzeba aby w temacie znalazły się polskie znaki należy taki temat zakodować base64, poprzedzić go ciągiem znaków =?iso-8859-2?B? i zakończyć ?=. W ciągu poprzedzającym fragment iso-8859-2 określa stronę kodową ISO z polskimi znakami, zaś fragment znajdujący się zaraz po nim ?B? wskazuje na kodowanie samej treści tematu tj. base64. Gdyby było to kodowanie quoted-printable cięg przyjąłby postać ?Q?.
Oto przykład jak tego można dokonać przy pomocy PHP:
<?php
$mojTemat = "=?iso-8859-2?B?".base64_encode("Temat z polskimi znakami ą, ś, ż, ć, ń, ó, ł, itd.")."?=";
?>
OK. Temat już ma polskie znaki, a co z treścią? Co należy zrobić by cały e-mail mógł zawierać polskie znaki?
Na te pytania odpowiedzi znajdują sie poniżej.

1.1 Czwarty parametr funkcji mail() - dodatkowe nagłówki

Czwarty parametr funkcji mail() zawiera dodatkowe nagłowki, czyli dodatkowe informacje dotyczące wysyłanej poczty, i mogą to być m.in.:
From: - nadawca
Reply-To: - adres zwrotny
X-Mailer: - program wysyłający pocztę
X-Sender: - program wysyłający pocztę
MIME-version: - informacja o wersji formatu MIME używanego w liście; aktualnie używa się wartości 1.0
Content-Type: - typ wysyłanych danych w poczcie oraz definicja ogranicznika
Content-ID: - położenie danych, które znajdują się poza dokumentem
Content-Description: - opis treści; nie należy używać polskich znaków
Content-Disposition: - informacja dla programu pocztowego czy treść ma być wyświetlana, czy oznaczona jako załącznik do dokumentu
Content-transfer-encoding: - sposób kodowania danych binarnych (np. 7bit, 8bit, binary, quoted-printable, base64); jeśli wystąpi potrzeba użycia polskich znaków w standardzie ISO-8859-2 należy wybrać kodowanie 8bit
X-attachments: - lista plików (załączników)
Przykładowe dodatkowe nagłówki mogą mieć postać:
From: 'Imię Nazwisko-nadawcy'
To: 'Imię Nazwisko-odbiorcy'
Subject: Temat tego e-maila
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=iso-8859-2
MIME-Version: 1.0

2. Załączniki (attachments)

Aby móc załączyć jakieś pliki do poczty należy dodać lub zamienić dodtakowy nagłówek Content-Type na następujący:
Content-type: multipart/mixed; boundary="moj-ciag-rozdzielajacy"
Jak widać na powyższym przykładzie w nagłówku pojawił się nowy parametr boundary, który określa ciąg znaków rozdzielający treść wiadomości i poszczególne załaczniki w poczcie elektronicznej.
Przykład zawartości e-maila z załącznikiem:
1:    From: 'Imię Nazwisko-nadawcy'
2: To: 'Imię Nazwisko-odbiorcy'
3: Subject: =?ISO-8859-2?B?VGVtYXQgdGVnbyBlLW1haWxh?=
4: Content-Type: multipart/mixed; boundary="STELMIK-1234567890"
5: Content-Transfer-Encoding: 8bit
6: MIME-Version: 1.0
7:  
8: --STELMIK-1234567890
9: Content-Transfer-Encoding: 8bit
10: Content-type: text/plain; charset=iso-8859-2
11: MIME-Version: 1.0
12: Content-Disposition: inline
13:  
14: Witam,
15: Co słychać?
16:  
17: --STELMIK-1234567890
18: Content-Type: image/gif; name="fotka.gif"
19: Content-Transfer-Encoding: base64
20: Content-Description: "Zdjęcie z wakacji"
21: Content-Disposition: attachment; filename="fotka.gif"
22:  
23: [... zakodowana treść pliku fotka.gif przy pomocy base64 ...]
24:  
25: --STELMIK-1234567890-

Linie 1-6 były już opisane, więc nie będą już opisywane. W linii 8, 17 i 25 znajduje się ciąg znaków zadeklarowany w linii 4 i początkujący i rozdzielający treść oraz poszczególne załączniki (w przykładzie jest tylko jeden załącznik znajdujący się pomiędzy liniami 17 a 25).
Pomiędzy liniami 8 a 17 znajduje się treść wiadomości bezpośrednio wyświetlonej w programie pocztowym.
Jak można zauważyć ciągi rozdzielające poprzedzone są podwójnym znakiem "-", a ostatni z nich (linia 25) dodatkowo zakończony jest pojedynczym znakiem "-", informujący o końcu całego dokumentu.
W linii 23 powinna znaleźć się zawartość pliku fotka.gif zakodowana base64.

 
do góry ^ 
Jesteś 4456398 odwiedzającym
 
 
Copyright © 2003-2024 Krzysztof Stelmach, Wszelkie prawa zastrzeżone.
 
System reklamy Test