PHP Manualen
forrige |  | næste

# mail

(PHP 3, PHP 4, PHP 5)

mail -- Afsend email

## Beskrivelse

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

Sender en email.

## Parameterliste

to

  Modtager eller modtagerne af mailen

  Denne streng skal overholde RFC 2822. Et par eksempler::

  user@example.com
  user@example.com, anotheruser@example.com
  User <user@example.com>
  User <user@example.com>, Another User <anotheruser@example.com>

subject

  Emnet på mailen der skal sendes.

  Pas på
  Dette må ikke indeholde nogle linjeskift, da mailen måske ikke bliver leveret korrekt.

message

  Beskeden som skal sendes.

  Alle linjer bør blive delt med en LF (\n). Linjerne bør ikke være længere end 70 tegn.

  Pas på

  (Kun windows) Når PHP snakker direkte med en SMTP server og et fuldt stop er fundet på starten af en linje, vil den blive fjernet. For at undgå dette, kan sådanne linjer udskriftes med to punktommer.

  `<?php $text = str_replace("\n.", "\n..", $text); ?>`

additional_headers (optional)

  Tekst som vil blive indsat til sidst i brevhovedet på emailen.

  Dette bliver typisk brugt til at tilføje flere linjer til brevhovedet, som f.eks. From, Cc og Bcc). Hvis der er flere ekstra linjer, skal de deles med CRLF (\r\n).

  > Bemærk: Mailen skal indeholde en From i brevhovedet. Dette kan sættes i additional_headers eller en standardværdi direkte i `php.ini`.

  > Hvis dette ikke bliver gjort, vil det resultere i en fejl som kunne ligne dette: Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing.

  > Bemærk: Hvis beskeden ikke bliver modtaget, prøv så kun at benytte LF (\n). Nogle dårlige Unix mailservere udskifter LF med CRLF automatisk, hvilket bliver til dobbelt CR hvis CRLF er brugt. Dette skal være den sidste udvej, da metoden ikke overholder RFC 2822 standarden.

additional_parameters (optional)

  Den sidste parameter, additional_parameters, kan bruges til at angive indstillinger direkte til det program som er konfigureret ved sendmail_path, som bruges til at sende mail. Det kunne f.eks. være 'envelope sender address', som bruges til at angive mailserverens svaradresse, og kan beskrives ved at bruge -f som sendmail parameter.

  Den bruger som webserveren kører under, bør tilføjes til listen over betroede brugere i sendmail konfiguration for at undgå en 'X-Warning' i brevhovedet, når 'envelope sender' (-f) bliver brugt i denne funktion. Til dem som bruger sendmail, hedder filen `/etc/mail/trusted-users`.

## Returneringsværdier

Returnere `TRUE`, hvis mailen blev accepteret af modtagerserveren og ellers `FALSE`.

Det er vigtigt at bemærke, at selvom mailen blev accepteret af serveren, er det IKKE sikkert at mailen bliver leveret til den tilsigtet destination.

## ChangeLog

Version | Beskrivelse
--- | ---
4.3.0 (Kun Windows) | Alle brugerdefineret brevhoveder (som From, Cc, Bcc og Date) er alle tilgængelige og ser ikke forskelligt på store og små bogstaver. (Da brugerdefineret brevhoveder ikke bliver behandlet af MTA i første omgang, men bliver først gennemgået af PHP. PHP < 4.3 tillader kun Cc og ser forskel på store og små bogstaver.)
4.2.3 | Parameteren additional_parameters er slået fra i safe_mode og funktionen mail() vil komme med en advarsel besked (warning) og returner `FALSE` hvis den bliver brugt.
4.0.5 | Parameteren additional_parameters blev tilføjet.

## Eksempler

Eksempel 1. Afsende mail.

Brug af mail() til at sende en simpel mail:

`<?php // Beskeden $message = "Line 1\nLine 2\nLine 3"; // I tilfældet at vores linjer er længere end 70 tegn, bør wordwrap() benyttes $message = wordwrap($message, 70); // Send mail('caffinated@example.com', 'My Subject', $message); ?>`

Eksempel 2. Afsende mail med brugerdefineret brevhoved.

Ved tilføjning af nogle elementære indstillinger, kan vi fortælle MUA omkring fra (From) og svar-til (Reply-To) adresserne:

`<?php $to = 'nobody@example.com'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?>`

Eksempel 3. Afsending af mail med ekstra kommandolinje parameter.

Parameteren additional_parameters kan blive brugt til at overføre ekstra værdier til det program, der igennem sendmail_path er sat til at sende mails for PHP.

`<?php mail('nobody@example.com', 'the subject', 'the message', null, '-fwebmaster@example.com'); ?>`

Eksempel 4. Afsending af en HTML mail

Det er også muligt at afsende en mail i HTML-format med mail().

`<?php
// multiple recipients
$to = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';
// subject
$subject = 'Birthday Reminders for August';
// message
$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>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
?>`

> Bemærk: Hvis det påtænkes at sende HTML eller andre former for komplekse email, anbefales det at bruge PEAR package PEAR::Mail.

## Notes

> Bemærk: Windows implementeringen af mail() er på mange måder forskellig fra Unix versionen. For det første, bruger den ikke et lokalt program til udsending af mail, men åbner en forbindelse direkte til en MTA, som entet er lokal eller på en ekstern maskine.

> For det andet, brugerdefineret brevhoveder som From:, Cc:, Bcc: og Date: er ikke overført direkte til MTA, men først læst igennem af PHP.

> Lige som at to parameteren ikke skal være en adresse i formatet "Something <someone@example.com>". Mailprogrammet vil muligvis ikke behandler det korrekt, når det snakker med MTA.

> Bemærk: Email med vedhæftede filer og specielle typer af indhold (f.eks. HTML), kan blive sendt ved brug af denne funktion. Dette gøres ved hjælp af MIME-encoding - læs mere omkring det her Zend article og her PEAR Mime Classes.

> Bemærk: Det skal også lige bemærkes at funktionen mail() ikke er beregning til at sende store mængder af email i en løkke. Denne funktion åbner og lukker en forbindelse til en SMTP-server ved hver mail, hvilket ikke er særlig effektivt.

> For at sende store mænger af emails, se mere her PEAR::Mail og her PEAR::Mail_Queue.

> Bemærk: De følgende RFC kan være meget brugbare: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048, RFC 2049 og RFC 2822.

## Se også

imap_mail()
PEAR::Mail
PEAR::Mail_Mime

forrige | hjem | næste
ezmlm_hash | op | mailparse Functions