mail

mail -- Wysyła e-maila

Opis

bool mail ( string do, string temat, string treść [, string dodatkowe_nagłówki [, string dodatkowe_parametry]])

mail( ) automatycznie wysyła wiadomość określoną w treść do odbiorcy określonego w do . Można wysłać wiadomość do kilku odbiorców na raz , wypisując ich adresy po przecinku w argumencie do . Poprzez funkcję można też wysłać listy zawierające załączniki lub inne typy wiadomości . Jest to możliwe dzięki kodowaniu MIME - po więcej informacji , zajrzyj http : / /www.zend.com / zend / spotlight / sendmimeemailpart1.php lub Klasy Mime PEAR .

Zapoznanie się z poniższymi RFC może być przydatne : RFC 1896 , RFC 2045 , RFC 2046 , RFC 2047 , RFC 2048 i RFC 2049 .

mail( ) zwraca TRUE jeśli e-mail został zaakceptowany przez przekaźnik pocztowy do wysłania lub FALSE w przeciwnym wypadku .

Ostrzeżenie

Implementacja funkcji mail( ) w systemie Windows różni się od implementacji w systemie Unix . Po pierwsze , funkcja nie używa lokalnych programów do komponowania wiadomości pocztowych , tylko operuje na połączeniach socketowych , co oznacza , że do działania potrzebny jest Agent Transferu Poczty ( MTA ) , który nasłuchuje na odpowiednim porcie . (Agent może znajdować się zarówno na maszynie lokalnej , jak i zdalnej ) . Po drugie , nagłówki użytkownika , takie jak From : , Cc : , Bcc : oraz Date : nie w pierwszej kolejności interpretowane przez MTA , gdyż wcześniej parsowane przez PHP . PHP 4.3 obsługiwał spośród wyżej wymienionych tylko nagłówek Cc : ( wymagana była odpowiednia wielkość liter) ; natomiast PHP = 4.3 obsługuje już wszystkie wyżej wymienione nagłówki i nie wymaga odpowiedniej wielkości liter .

Przykład 1 . Wysyłanie e-maila

 
mail(

 
"joecool@example.com"

 
,

 
"Temat

 
listu"

 
,

 
"Linia

 
1\nLinia

 
2\nLinia

 
3")

 
;





Jeśli zostanie podany czwarty argument , będzie on dopisany na końcu nagłówka wiadomości . Ten argument wykorzystuje się do wstawienia dodatkowych nagłówków . Dodatkowe nagłówki rozdziela się znakiem powrotu karetki i nowego wiersza .

Notatka : Aby rozdzielić nagłówki , trzeba użyć sekwencji \r\n , chociaż niektóre uniksowe agenty pocztowe obsługują także pojedynczy znak nowej linii ( \n ) .

Przykład 2 . Wysyłanie listu z dodatkowymi nagłówkami .

 
mail(

 
"nobody@example.com"

 
,

 
"temat"

 
,

 
$wiadomosc

 
,

 
"From

 
:

 
webmaster@$SERVER_NAME\r\n

 
"

 
."Reply-To

 
:

 
webmaster@$SERVER_NAME\r\n

 
"

 
.

 
"X-Mailer

 
:









Argumentu dodatkowe_parametry używa się do przekazania dodatkowego paramteru do programu wysyłającego pocztę skonfigurowanego w dyrektywie sendmail_path . Używa się tego na przykład do ustawienia adresu zwrotnego koperty ( envelope sender adress ) przy wysyłaniu listu za pomocą sendmaila . Możesz być zmuszony dodać użytkownika jakim jest twój serwer www do listy zaufanych użytkowników w pliku konfiguracyjnym sendmaila , aby sendmail nie dodał nagłówka " X-warning " do wiadomości przy wysyłaniu koperty (envelope ) metodą .

Przykład 3 . Wysyłanie listu z dodatkowymi nagłówkami i przełącznikami .

 
mail(

 
"nobody@example.com"

 
,

 
"temat"

 
,

 
$wiadomosc

 
,

 
"From

 
:

 
webmaster@$SERVER_NAME"

 
,

 
"-fwebmaster@$SERVER_NAME")

 
;





Notatka : Piąty argument funkcji mail( ) został dodany w PHP 4.0.5 . Począwszy od PHP 4.2.3 argument ten jest zablokowany w trybie bezpiecznym . W przypadku próby użycia , funkcja mail( ) wygeneruje ostrzeżenie i zwróci FALSE .

Można tez użyć zwykłych operacji na łańcuchach znaków do tworzenia złożonych wiadomości e-mail .

Przykład 4 . Wysyłanie złożonego e-maila .

 
/*

 
adresaci

 
*

 
/

 
$do

 
=

 
"

 
Marysia

 
marysia@example.com

 
"

 
.

 
"

 
,

 
"

 
;

 
/

 
/

 
zwróc

 
uwagę

 
na

 
przecinek

 
$do

 
.=

 
"Kasia

 
kasia@example.com

 
"

 
;

 
/

 
*

 
temat

 
*

 
/

 
$temat

 
=

 
"Przypomnienie

 
o

 
urodzinach

 
w

 
Sierpniu"

 
;

 
/

 
*

 
wiadomość

 
*

 
/

 
$wiadomosc

 
=

 
'

 
html

 
head

 
title

 
Przypomnienie

 
o

 
urodzinach

 
w

 
Sierpniu

 
/

 
title

 
/

 
head

 
body

 
p

 
Te

 
urodziny

 
będziemy

 
świętować

 
w

 
Sierpniu

 
!

 
/

 
p

 
table

 
tr

 
th

 
Osoba

 
/

 
th

 
th

 
Dzień

 
/

 
th

 
th

 
Miesiąc

 
/

 
th

 
th

 
Rok

 
/

 
th

 
/

 
tr

 
tr

 
td

 
Jan

 
/

 
td

 
td

 
3

 
.

 
/

 
td

 
td

 
Sierpnia

 
/

 
td

 
td

 
1970

 
/

 
td

 
/

 
tr

 
tr

 
td

 
Szymon

 
/

 
td

 
td

 
17

 
.

 
/

 
td

 
td

 
Sierpnia

 
/

 
td

 
td

 
1973

 
/

 
td

 
/

 
tr

 
/

 
table

 
/

 
body

 
/

 
html

 
'

 
;

 
/

 
*

 
Aby

 
wysłać

 
e-mail

 
w

 
formacie

 
HTML

 
,

 
należy

 
ustawić

 
nagłówek

 
Content-type

 
.

 
*

 
/

 
$naglowki

 
=

 
"MIME-Version

 
:




 
1.0\r\n"

 
;

 
$naglowki

 
.=

 
"Content-type

 
:

 
text

 
/

 
html

 
;

 
charset=iso-8859-1\r\n"

 
;

 
/

 
*

 
dodatkowe

 
nagłówki

 
*

 
/

 
$naglowki

 
.=

 
"From

 
:




 
Przypominacz

 
o

 
urodzinach

 
urodziny@example.com

 
\r\n"

 
;

 
$naglowki

 
.=

 
"Cc

 
:

 
archiwum_mailingu@example.com\r\n"

 
;

 
$naglowki

 
.=

 
"Bcc

 
:

 
kontrola_mailingu@example.com\r\n"

 
;

 
/

 
*

 
a

 
teraz

 
wyślij

 
*

 
/

 
mail($do

 
,

 
$temat

 
,

 
$wiadomosc

 
,

 
$naglowki)

 
;





Notatka : Upewnij się , że nie ma żadnych znaków nowej linii w argumencie do lub temat , gdyż w przeciwnym razie , e-mail może nie być wysłany poprawnie .

Notatka : Argument do nie może być adresem w postaci " Ktośtam someone@example.com " . Funkcja mail( ) nie przetworzy prawidłowo takiego adresu w czasie transakcji z Agentem Transferu Poczty (MTA ) .

Patrz także : imap_mail( ) .