mail

(PHP 3, PHP 4 >= 4.0.0)

mail -- wyślij 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 tę 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.

Poniższe RFC mogą być przydatne: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048 i RFC 2049.

mail() zwraca TRUE jeśli udało się wysłać e-mail, lub FALSE w przeciwnym wypadku.

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). W nagłówku Cc: jest rozróżniana wielkość liter i z tego powodu, w systemach Win32 musi być pisany jako Cc:. Nagłówek Bcc: nie jest obsługiwany w systemach Win32.

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

mail("nobody@example.com", "temat", $message,
     "From: webmaster@$SERVER_NAME\r\n"
    ."Reply-To: webmaster@$SERVER_NAME\r\n"
    ."X-Mailer: PHP/" . phpversion());

Argumentu dodatkowe_parametry używa się do przekazania dodatkowych paramterów 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 listy 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) tą metodą.

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

mail("nobody@example.com", "temat", $message,
     "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");

Notatka: Piąty argument funkcji mail() został dodany w PHP 4.0.5.

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 */
$to  = "Mary <mary@example.com>" . ", " ; //zwróc uwagę na przecinek
$to .= "Kelly <kelly@example.com>";

/* temat */
$subject = "Birthday Reminders for August";

/* wiadomość */
$message = '
<html>
<head>
 <title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
 <tr>
  <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
 </tr>
 <tr>
  <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
  <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
 </tr>
</table>
</body>
</html>
';

/* Aby wysłać e-mail w foramcie HTML, należy ustawić nagłówek Content-type. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* dodatkowe nagłówki */
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";

$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* a teraz wyślij */
mail($to, $subject, $message, $headers);

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.